ich versuche die differenztage zwischen 2 Datums, die in einem String gespeichert sind herauszufinden. dazu habe ich mir die klasse date angesehen und die klasse gregoriancalendar, die meiner meinung nach dafür keine methoden haben.
habt ihr eine idee wie dieses problem möglichst einfach zu lösen ist?
also die daten müssen in einer bestimmten form vorliegen. dann kannst du SimpleDateFormat benutzen um die strings in Date(s) zu ändern. mit dem vergleichen fehlt mir grad keine methode ein.
leute das ist ja schlimm...es heisst daten, nicht datums..das ist genauso falsch wie atlasse oder pizzas
</ot>
also ich würde das problem so lösen das man jahre, monate und tage in felder unterteilt, so kann man das dann wunderbar vergleichen und die differenz ermitteln...aber da ich selber noch keinen großen wissensschatz habe, gibt es da sicher noch bessere lösungen ?!
Angenommen du wandelst deine Strings in GregorainCaldendars um:
Du kannst die Zeit in Millisekunden (getTimeInMillis) abrufen, die Differenz in Millisekunden berechnen, und diese Differenz dann noch durch 1000*3600*24 teilen, um sie in Tage umzurechnen.
dacht ich mir schon das da was falsch ist, kam mir irgendwie komisch vor, wusste aber auch nicht wie das richtig geschrieben wird also hab ich es einfach übernommen
danke für den hinweis mit gettimeinmillis. ich sehe zwar die mehode in der api, bin aber nicht in der lage diese funktion zu benutzen. ich programmiere mit jbuilder x und habe ein objekt entworfen das da heißt:
Code:
GregorianCalendar calendar = new GregorianCalendar();
wenn ich nun das objekt calendar aufrufe stellt mir die entwicklungsumgebung alle für mich infrage kommenden methoden zur verfügung. darunter befindet sich leider die methode gettimeinmilli nicht. das hat mich zur annahme gebracht eine hierarchieebene weiter oben zu gucken in calendar. diese klasse lässt sich aber nicht instanzieren, da si abstrakt ist. nun ist guter rat für mich teuer.
Um aus einer Zeichenkette ein Datum auszulesen, verwende die Klasse "DateFormat",
dann kannst du jedes Feld des Datums abfragen:
Code:
Date dateObject = DateFormat.getDateInstance(DateFormat.SHORT, Locale.GERMANY).parse(dateAsString);
//Locale.GERMANY und DateFormat.SHORT ist davon abhängig, wie die Zeichenkette formatiert ist
//Siehe die Klasse DateFormat
Calendar cal = new GregorianCalendar(dateObject);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
long millis = cal.getTimeInMillis();
//u.s.w., siehe die Klasse GregorianCalendar