Java Programmierung Adventskalender
Guten Tag, ich habe vor einen Adventskalender mit Java zu schreiben. Ich habe schon ein bisschen angefangen, komme aber leider nicht weiter. Ich habe das Problem das er das Datum nicht vergleicht. Mir fehlt leider der Passende Befehl dazu.
Aso im Anschluss der erklärung meines Problemes kommt auch der Script.
Ich möchte das Formatierte Datum bei if haben z.B." (if (formartiertes datum) == 27112014)
Nun das Formatieren klappt ja aber ich weiß nicht wie ich das Formatierte in eine Variabel bekomme bzw. übertrage..
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.GregorianCalendar;
public class Adventskalender {
public static void main(String[] args) {
Date Datum = new Date();
SimpleDateFormat einfaches = new SimpleDateFormat("ddMMyyyy");
System.out.println(einfaches.format(Datum));
if (27112014 == 27112014) {
System.out.print ( "Richtig so");
} // end of if
else {
System.out.println ("Dulli");
} // end of if-else
}
}
4 Antworten
Eine Option wäre das hier:
if ("27112014".equals(einfaches.format(Datum)))
klappt bei dir denn
SimpleDateFormat einfaches = new SimpleDateFormat("ddMMyyyy");
???
wenn ja, hast du doch alles, was du brauchst. du hast das datum in einem objekt. das kannst du dann zu einem string casten (stichwort fürs weitere arbeiten ;) ), den string kannst du dann in 3 teile splitten (tag, monat und jahr) und diese teile wiederum zu int casten oder womit auch imemr du weiterhin arbeiten willst (hier wäre aber int sinnvoll)
genau das ist ja der trick.
du kannst ein objekt nicht in eine variable packen (bzw du kannst schon, bringt nur nix ^^). deswegen musst du erst das objekt in irgendwas umwandeln, womit du auch operationen anstellen kannst und das wäre eben ein string doer noch besser ein int wert. den packst du dann eben in eine string / int variable und kannst damit rechnen, den wert vergleichen oder auch vergrößern / verkleinern usw. alles, was du mit einem objekt nicht machen kannst
Schau mal zB hier: http://openbook.galileo-press.de/javainsel9/javainsel_15_007.htm#mjad1f28a3f317aa895ddd6dea7d84b156
Date time = .... DateFormat formatter = new SimpleDateFormat(); System.out.println( formatter.format( time ) );
Aber Stringvergleiche musst du in Java mit a.equals(b) machen.
Übrigens ist die Date-Api in Java sehr sehr unschön. Wenn du mit Joda DateTime arbeitest, machst du dir das Leben erheblich einfacher. Die Prinzipien sind ziemlich dieselben, aber du sparst dir viele Fehlermöglichkeiten.
Ich würde Dir empfehlen, in die neue Time-API von Java 8 zu gucken. Diese ersetzt weitestgehend die alten Time-Klassen!
Ja das mit dem spliten kann ich später noch machen. Ich dachte mir das dann da steht
if ( tag == 01122014) {
System.out.println ( "BlA BLA") ;
}
und das dann bis 24122014
aber wie bekomme ich das formartierte Datum in eine variable wie z.B. "tag"