pieni päivämäärä ongelma

Olen saanut alla olevalla koodilla tulostumaan tämän päivän(2004-08-03), mutta miten koodia olisi muutettava, jotta saisin siitä irti eilisen päivämäärän (2004-08-03).

Tarvitsen useampia päivämääriä applettini tekstikenttiin.

java.util.Date today =
new java.util.Date();
java.sql.Date sqlToday =
new java.sql.Date(today.getTime());
jTextField2.setText("" sqlToday);
121631
Äänestä

Muut lukivat myös

Vastaukset 12

Vanhimmat
  • Tuo sivuhan on maksullinen. En viitsisi maksaa tällaisen ongelmanratkaisusta, kun ratkaisu on kuitenkin hyvin yksinkertainen(luulisin). :)

    Äänestä

  • Saara kirjoitti:

    Tuo sivuhan on maksullinen. En viitsisi maksaa tällaisen ongelmanratkaisusta, kun ratkaisu on kuitenkin hyvin yksinkertainen(luulisin). :)

    Eli tällä koodilla saan myös tämän päivän päivämäärän, mutta pitäisi saada myös eilisen päivämäärä.

    java.sql.Date date = new java.sql.Date((new GregorianCalendar()).getTime().getTime());

    Äänestä

  • Saara kirjoitti:

    Tuo sivuhan on maksullinen. En viitsisi maksaa tällaisen ongelmanratkaisusta, kun ratkaisu on kuitenkin hyvin yksinkertainen(luulisin). :)

    Ei tuon linkin klikkaaminen mitään maksa ;D

    Et sitten jaksanut skrollata sivua yhtään alaspäin mistä vastauskin löytyy...?

    Äänestä

  • Saara kirjoitti:

    Eli tällä koodilla saan myös tämän päivän päivämäärän, mutta pitäisi saada myös eilisen päivämäärä.

    java.sql.Date date = new java.sql.Date((new GregorianCalendar()).getTime().getTime());

    löytyy varmasti metodiu, jolla voi päivämääriä laskea.

    Tällä hetkellä sulla on siis jo koodi millä saat tämän päivän, niin oisko tästä apua?

    Calendar calendar = new GregorianCalendar();

    calendar.setTime(new Date()); //nykyhetki

    Sitten luetaan APIsta joku metodi:

    void roll(int field, int amount)
    Roll a field by a signed amount.

    calendar.roll(DAY_OF_MONTH, -1);

    System.out.println(calendar.get(Calendar.DAY_OF_MONTH) "." calendar.get(Calendar.MONTH) "." calendar.get(Calendar.YEAR));

    Muut int-tyyppiset kentät löytyy Calendar-luokasta (siis noi jotka on isolla).

    Äänestä

  • Piru kirjoitti:

    löytyy varmasti metodiu, jolla voi päivämääriä laskea.

    Tällä hetkellä sulla on siis jo koodi millä saat tämän päivän, niin oisko tästä apua?

    Calendar calendar = new GregorianCalendar();

    calendar.setTime(new Date()); //nykyhetki

    Sitten luetaan APIsta joku metodi:

    void roll(int field, int amount)
    Roll a field by a signed amount.

    calendar.roll(DAY_OF_MONTH, -1);

    System.out.println(calendar.get(Calendar.DAY_OF_MONTH) "." calendar.get(Calendar.MONTH) "." calendar.get(Calendar.YEAR));

    Muut int-tyyppiset kentät löytyy Calendar-luokasta (siis noi jotka on isolla).

    Mitäs jos nykyhetki on vaikka 1.8.2004. Antaako tuo tapa sitten eiliseksi päiväksi 0.8.2004 ?

    Äänestä

  • hss kirjoitti:

    Mitäs jos nykyhetki on vaikka 1.8.2004. Antaako tuo tapa sitten eiliseksi päiväksi 0.8.2004 ?

    Tuo tapa ei anna mitään muuta kuin tämän päivän.
    Niin ja se aiemmin annettu sivu ei ratkaisua tarjonnut.

    Tässä on kaikki koodit mitä olen yrittänyt:
    1.
    [code]

    java.sql.Date date =
    new java.sql.Date((new GregorianCalendar()).getTime().getTime());
    jTextField2.setText("" date);

    [/code]

    2.
    [code]
    Calendar cal = GregorianCalendar.getInstance();
    DateFormat fmt = DateFormat.getInstance();
    String buf = fmt.format(cal.getTime());


    jTextField2.setText("" buf);
    [/code]

    3. [code]
    java.util.Date today =
    new java.util.Date();
    java.sql.Date sqlToday =
    new java.sql.Date(today.getTime() 1);
    jTextField2.setText("" sqlToday);
    [/code]

    Eli jos joku neuvoisi miten jotain yllä olevaa koodin pätkää tulisi muokata, että saisin "tulokseksi" eilisen päivän.

    Äänestä

  • Saara kirjoitti:

    Tuo tapa ei anna mitään muuta kuin tämän päivän.
    Niin ja se aiemmin annettu sivu ei ratkaisua tarjonnut.

    Tässä on kaikki koodit mitä olen yrittänyt:
    1.
    [code]

    java.sql.Date date =
    new java.sql.Date((new GregorianCalendar()).getTime().getTime());
    jTextField2.setText("" date);

    [/code]

    2.
    [code]
    Calendar cal = GregorianCalendar.getInstance();
    DateFormat fmt = DateFormat.getInstance();
    String buf = fmt.format(cal.getTime());


    jTextField2.setText("" buf);
    [/code]

    3. [code]
    java.util.Date today =
    new java.util.Date();
    java.sql.Date sqlToday =
    new java.sql.Date(today.getTime() 1);
    jTextField2.setText("" sqlToday);
    [/code]

    Eli jos joku neuvoisi miten jotain yllä olevaa koodin pätkää tulisi muokata, että saisin "tulokseksi" eilisen päivän.

    calendar.add(GregorianCalendar.DAY_OF_MONTH, -1);

    System.out.println("eilinen päivä: " format.format(calendar.getTime()));

    Äänestä

  • Saara kirjoitti:

    Tuo tapa ei anna mitään muuta kuin tämän päivän.
    Niin ja se aiemmin annettu sivu ei ratkaisua tarjonnut.

    Tässä on kaikki koodit mitä olen yrittänyt:
    1.
    [code]

    java.sql.Date date =
    new java.sql.Date((new GregorianCalendar()).getTime().getTime());
    jTextField2.setText("" date);

    [/code]

    2.
    [code]
    Calendar cal = GregorianCalendar.getInstance();
    DateFormat fmt = DateFormat.getInstance();
    String buf = fmt.format(cal.getTime());


    jTextField2.setText("" buf);
    [/code]

    3. [code]
    java.util.Date today =
    new java.util.Date();
    java.sql.Date sqlToday =
    new java.sql.Date(today.getTime() 1);
    jTextField2.setText("" sqlToday);
    [/code]

    Eli jos joku neuvoisi miten jotain yllä olevaa koodin pätkää tulisi muokata, että saisin "tulokseksi" eilisen päivän.

    Vastaus löytyy täältä jo, ja löytyy se myös sen linkin takaa minkä jo kerran heitin.

    Jos haluat eilisen päivän, sun tuskin pitää lisätä nykyiseen päivään mitään, kuten tossa kolmosesimerkissä on. Ekalla ja tokalla esimerkillä saat vain nykyisen päivän.

    Alla on pätkä mikä ainakin toimii...


    import java.util.Date;
    import java.util.Calendar;
    public class DateTest extends Object
    {

    public static void main( String[] args ) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(new Date());
    int day = cal.get(Calendar.DATE);

    cal.add(Calendar.DAY_OF_MONTH, -1);
    System.out.println("Eilen oli " cal.getTime());
    }
    }

    Jos muuten haet tällä ratkaisua kysymykseen jonka lähetit Tietokanta-palstalle, tämä on _todella_ huono tapa ratkaista ongelma, ja varmasti tuottaa vaikeuksia myöhemmin.

    Äänestä

  • hss kirjoitti:

    Mitäs jos nykyhetki on vaikka 1.8.2004. Antaako tuo tapa sitten eiliseksi päiväksi 0.8.2004 ?

    osaa laskea kalenteria. Eli sitten aika muuttuisi edelliseksi kuukaudeksi.

    Saattoi kyllä olla niinkin, että joku noista ajoista alkoi nollasta. Äkkiäkö sen tarkistaa.

    Jos roll ei toimi, niin sitten add-metodilla lisää -1 päivään ja sitten tulostaa.

    Äänestä

  • Saara kirjoitti:

    Tuo tapa ei anna mitään muuta kuin tämän päivän.
    Niin ja se aiemmin annettu sivu ei ratkaisua tarjonnut.

    Tässä on kaikki koodit mitä olen yrittänyt:
    1.
    [code]

    java.sql.Date date =
    new java.sql.Date((new GregorianCalendar()).getTime().getTime());
    jTextField2.setText("" date);

    [/code]

    2.
    [code]
    Calendar cal = GregorianCalendar.getInstance();
    DateFormat fmt = DateFormat.getInstance();
    String buf = fmt.format(cal.getTime());


    jTextField2.setText("" buf);
    [/code]

    3. [code]
    java.util.Date today =
    new java.util.Date();
    java.sql.Date sqlToday =
    new java.sql.Date(today.getTime() 1);
    jTextField2.setText("" sqlToday);
    [/code]

    Eli jos joku neuvoisi miten jotain yllä olevaa koodin pätkää tulisi muokata, että saisin "tulokseksi" eilisen päivän.

    Testasin sekä add- että roll-metodeilla ja tässä tulokset:

    Molemmilla tulee eilinen päivä ihan ok.

    Date today = new java.util.Date();
    Calendar kalenteri = new GregorianCalendar();
    kalenteri.setTime(today);

    System.out.println(kalenteri.get(Calendar.DAY_OF_MONTH));

    kalenteri.add(Calendar.DAY_OF_MONTH, -1);

    System.out.println(kalenteri.get(Calendar.DAY_OF_MONTH));

    Ja tänään ruudulle tulostuu 4 ja seuraavalle riville 3

    Äänestä

  • Piru kirjoitti:

    osaa laskea kalenteria. Eli sitten aika muuttuisi edelliseksi kuukaudeksi.

    Saattoi kyllä olla niinkin, että joku noista ajoista alkoi nollasta. Äkkiäkö sen tarkistaa.

    Jos roll ei toimi, niin sitten add-metodilla lisää -1 päivään ja sitten tulostaa.

    No nyt toimii :)

    Äänestä

Kommentoi aloitusta


Saara kirjoitti:

Olen saanut alla olevalla koodilla tulostumaan tämän päivän(2004-08-03), mutta miten koodia olisi muutettava, jotta saisin siitä irti eilisen päivämäärän (2004-08-03).

Tarvitsen useampia päivämääriä applettini tekstikenttiin.

java.util.Date today =
new java.util.Date();
java.sql.Date sqlToday =
new java.sql.Date(today.getTime());
jTextField2.setText("" sqlToday);

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu