timt: Java GregorianCalendar - "before()" funktioniert nicht

Habe folgenden Code aus der Uni der leider bei mir nicht funktioniert. Kann leider den Fehler nicht finden. Weiß jemand was daran nicht korrekt ist? Eclipse unterstreicht das "before()". Kann mir jemand nen Tip geben? Bin echt ratlos.

import java.util.*;

public class GregorianExample
{
   public static void main(String[] args){

GregorianCalendar cal = new GregorianCalendar(1975, Calendar.FEBRUARY, 11);

if (cal.getTime().before(new Date())){
         System.out.println("Liegt in der Vergangenheit...");
      }

}

  1. Hallo timt,

    if (cal.getTime().before(new Date())){
             System.out.println("Liegt in der Vergangenheit...");
          }

    Interessant, dass Eclipse das als Fehler erkennt, denn rein von der Typisierung her, ist das korrekt und gibt keinen Kompilerfehler.
    Allerdings gibt before() für Objekte, die keine Instanzen von Calendar sind, immer false zurück, weswegen der Code ziemlich sinnlos ist.
    Versuch es mal mit "new GregorianCalendar()".

    Grüße

    Daniel

    1. habe es grad noch mit "new GregorianCalendar()" probiert, aber bekomme den gleichen Fehler.

      Eclipse sagt mir: "The method before(Date) in the type Date is not applicable for the arguments (Date)"

      was ich auch irgendwie unlogisch finde...^^

      1. Hi,

        habe es grad noch mit "new GregorianCalendar()" probiert, aber bekomme den gleichen Fehler.

        Eclipse sagt mir: "The method before(Date) in the type Date is not applicable for the arguments (Date)"

        was ich auch irgendwie unlogisch finde...^^

        Was hast Du bei import stehen?
        Evtl. import java.sql.Date; ?

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Danke für die Mühe. Habs nun Hinbekommen. Hatte einfach nur ne Klasse "Date" schon im gleichen Ordner, die er dann versucht hat zu benutzen... Also sorry habs verrafft.. :)

    2. Hallo,

      if (cal.getTime().before(new Date())){
               System.out.println("Liegt in der Vergangenheit...");
            }
      Allerdings gibt before() für Objekte, die keine Instanzen von Calendar sind, immer false zurück, weswegen der Code ziemlich sinnlos ist.
      Versuch es mal mit "new GregorianCalendar()".

      Ich glaube, du hast da irgendwelche Klassen oder Methoden verwechselt.
      cal.getTime() liefert ein Date-Objekt. Die Methode "before()" ist dort
      definiert und funktioniert mit einem Date-Objekt als Parameter immer.

      Der Ursprungscode von timt funktioniert bei mir auch wunderbar...

      Gruß
      Slyh

      1. Hallo Slyh,

        Ich glaube, du hast da irgendwelche Klassen oder Methoden verwechselt.

        Fast, ich habe das getTime() schlicht überlesen, Calendar hat auch eine Methode before(Object) ;-)

        Grüße

        Daniel

  2. Hallo,

    der Code scheint korrekt zu sein. Wenn das wirklich dein Original-Code ist, würde
    ich den Fehler woanders suchen. Wurde der Quellcode evtl. noch nicht gebaut?
    Ist im Menü "Project" der Punkt "Build Automatically" eingeschaltet, so dass
    Eclipse bei jedem Speichern automatisch baut?

    Gruß
    Slyh