pieni päivämäärä ongelma

Saara

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);

12

1623

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Power Pope
      • Saara

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


      • Saara
        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());


      • Power Pope
        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...?


      • Piru
        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).


      • hss
        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 ?


      • Saara
        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.


      • dfgfdg
        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()));


      • Power Pope
        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.


      • Piru
        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.


      • Piru
        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


      • Saara
        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 :)


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Eläkeläiset siirrettävä muuttotappioalueille

      Joutoväki pois ruuhkauttamasta elättäjien arkea. Samalla putoaa jokaisen asumiskulut ja rahaa jää enemmän kuluttamiseen.
      Maailman menoa
      280
      2621
    2. Riikka runnoo: datakeskuksille tulee UUSI yritystuki

      "Suomen valtio erikseen tukee esimerkiksi kryptovaluuttaan tai aikuisviihteeseen tai muuhun keskittyviä datakeskuksia."
      Maailman menoa
      77
      2453
    3. SDP pelastaa uppoavan Suomen

      2027 kun SDP voittaa ylivoimaisesti vaalit alkaa Suomen uusi raju syöksy kohti täystyöllisyyttä ja turvallisempaa yhteis
      Maailman menoa
      55
      2195
    4. Kauppalehti - Törkeä skandaali paljastui: Espanja käytti EU-rahoja ihan muuhun kuin piti

      Espanja on käyttänyt miljardeja euroja EU:n elpymisavustuksia eläkkeisiin ja sosiaalimenoihin – ja pyytää lisää. Espanj
      Maailman menoa
      76
      1877
    5. Onko kivaa jättää

      elämän suurin rakkaus hiljaisuuteen?
      Ikävä
      120
      1628
    6. Jopa Espanjassa talous kasvaa, Purra vain irvistelee

      Huomaa kuinka Purra on Suomen historian huonoin miniseteri, joka ei ole saanut aikaiseksi kuin tuhoa, Siis jopa vasemmis
      Maailman menoa
      59
      1554
    7. Mitä haluaisit sanoa hänelle tänään?

      Kerro tähän viestisi. 🍭🍡🍦
      Ikävä
      134
      1406
    8. En kerro nimeäsi nainen

      Sillä olet nyt salaisuus jota kannan sydämessäni. Tämä mitä tunnen ja kuinka sinuun vahvasti ihastuin on jo niin erikoin
      Ikävä
      73
      1308
    9. Auta mua mies

      Ota vielä yhteyttä, keksi oikeat sanat että vuosien ajan kasvanut muuri murtuu meidän väliltä vaikka aluksi vain vähän.
      Ikävä
      88
      1130
    10. Olet kiva ihminen

      En kiellä sitä yhtään. Sinussa on hyvin paljon erinomaisia puolia, enemmän varmasti kun meissä muissa. Sitten on puoli
      Ikävä
      76
      1099
    Aihe