Hallo,
ich würde gerne das aktuelle Datum abfragen und dann mit einem vorgegebenen Datum vergleichen. Komm aber nicht ganz weiter:
//vielleicht erst Locale.GERMANY abfragen?
Date heute = new Date();
//heute in short umwandeln?
Date fest = 01.09.06; //das geht so aber nicht?
//und jetzt noch heute mit fest vergleichen
mit System.currentTimeMillis() oder new Date() bekommst du das aktuelle Datum und mit new SimpleDateFormat(“EEE, d MMM yyyy HH:mm:ss Z”) kannst du es in jedes beliebige Format bekommen und die Strings kannst du vergleichen
Date heute = new Date();
SimpleDateFormat df = new SimpleDateFormat("dd.MM.yy");
String formatiert;
formatiert = df.format(heute);
String fest ="01.09.06";
System.out.println(df.format(heute));
Jetzt steht in einem schlauen Buch:
int compareTo(Date t) = Liefert 0 bei Gleichheit oder einen Wert <0, wenn die aktuelle Instanz vor t liegt bzw. >0, wenn sie nach t liegt.
Wie bau ich das jetzt da ein? Sorry, steht heut etwas auf der Leitung…
das geht nur wenn du das hast date.compareTo(date)
das bedeutet du lässt das eine Datum in dem format und vergleichst das einfach mit dem anderen Datum
heute.compareTo(anderesdatum);
import java.util.Date;
public class Vril
{
public static void main(String[] args)
{
SimpleDateFormat df = new SimpleDateFormat("dd.MM.yy");
String vorgabe = "01.09.06";
if(vorgabe.equals(df.format(new Date())))
{
System.out.println("Es ist nun der erste September im Jahre 2006");
}
else
{
System.out.println("Es scheint an anderes Datum als der erste September 2006 zu sein.");
}
}
}
es geht doch darum, zwei Datumsangaben zu vergleichen.
Also entweder per compareTo
the value 0 if the argument Date is equal to this Date; a value less than 0 if this Date is before the Date argument; and a value greater than 0 if this Date is after the Date argument.
oder ueber after bzw before aus Date
und erzeugen wuerde ich nicht ueber das SDF sonder ueber ein Calendar Objekt
Jetzt hätte ich noch eine kleine Frage zum Formatieren mit SimpleDateFormat! Und zwar wenn ich schreibe (“hh:mm:ss”) dann schreibt er mir 10:45:12 anstelle von 22:45:12 - Wie bekomme ich das hin, das es von 0-24 geht und nicht nur von 0-12?
Mit API habe ich auch noch problemen ;). Du bist nicht alleine hehe. Vor 3 Wochen habe ich dort 0 verstanden. Je besser man die Sprache Java versteht, desto besser versteht man die API.
[ol]
[li][FONT=Courier New]privatestaticboolean testCorrectDate(Date dateToCheck) {[/li][li] boolean correct;[/li][li] int[] maxDays = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };[/li][li] correct = false;[/li][li] // Test, if day is available in month[/li][li] if (dateToCheck.getMonth() > 0 && dateToCheck.getMonth() <= 12) {[/li][li] // correct month. now check day.[/li][li] if (dateToCheck.getDate() > 0[/li][li] && dateToCheck.getDate() < maxDays[dateToCheck.getMonth()]) {[/li][li] correct = true;[/li][li] }[/li][li] }[/li][li] return correct;[/li][li] }[/li][/ol]
[/FONT]
[/LEFT]
aber getMonth() und getDate() sind deprecated…
Ich möchte mit einer „neueren Version“ schreiben,aber weil ich java API nicht wirklick verstehe,Biete um Hilfe…