kostenloser Webspace werbefrei: lima-city


Date zu Calendar + Zeitspanne addieren

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    myhead

    myhead hat kostenlosen Webspace.

    Hey,
    ich benötige mal eure tag/hilfe">hilfe unzwar folgendes, ich bekomme ein Date Objekt und möchte herausfinden ob der Zeitraum zwischen heute und dem date kleine als 7 ist.

    public void methode(Date date)
    { 
         
         //Jetzt
         GregorianCalendar now = new GregorianCalendar();
         GregorianCalendar givenDate = new GregorianCalendar();
         
          // Setzt given Date auf date
          givenDate.setTime(date);
    
         // heute in 7 Tagen
         now.add(now.DAY_OF_MONTH, 7);
    
        if(givenDate.after(now))
       ....
       ...
    }
    
    methode(new Date(2011, 1, 1));


    Es scheint aber falsch zu sein, da egal was ich ich eingebe immer after ist.





  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Moin,

    Du verwendest veralteten Code.

    Versuch's mal hiermit:

    import java.util.GregorianCalendar;
    
    public class GregorianCheck {
        public static void main(String[] args) {
            GregorianCalendar now = new GregorianCalendar();
    
            System.out.println("Aktuell: " + now.getTime());
    
            GregorianCalendar date = new GregorianCalendar();
    
            date.add(GregorianCalendar.DAY_OF_MONTH, -7);
            date.add(GregorianCalendar.HOUR_OF_DAY, -5);
            System.out.println("Gesetzt: " + date.getTime());
            now.add(GregorianCalendar.DAY_OF_MONTH, -7);
            System.out.println("7 Tage: " + now.getTime());
    
            if (date.before(now)) {
                System.out.println("Datum ist länger her als 7 Tage.");
            }
        }
    }


    Gruß,
    Pawnee
  4. Autor dieses Themas

    myhead

    myhead hat kostenlosen Webspace.

    Man kann das Problem auch so lösen:

    givenDate.set(date);
    
    //givenDate.get(1) liefert das jahr zurück ...
    //Man könnte wahrscheinlich auch Calendar.YEAR schreiben.
    givenDate.set(1, (givenDate.get(1)-1900));


    dann funktionierts auch :D

    Beitrag zuletzt geändert: 11.4.2011 13:53:28 von myhead
  5. Moin,

    "Man könnte wahrscheinlich auch Calendar.YEAR schreiben." trifft es nicht ganz. Es liegt im Zuge einer guten stilistisch und pragmatisch aussehenden Programmierung, dass man Konstanten verwendet, die aus der API stammen.
    Was hat Dein Code jetzt mit den 7 Tagen Verschiebung zu tun, die Du erreichen wolltest?
    Irgendwie geht mir da der Sinn nicht auf.

    Gruß,
    Pawnee
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!