Mit Datum rechnen

jonasXDD

Mitglied
Hallo,
ich versuche greden mit Datum zu rechnen:

Und zwar will ich das heutige Datum (Tag im Jahr) nehmen und da dann eine bestimmte Anzahl von Tagen draufrechnen.

Java:
		SimpleDateFormat datum = new SimpleDateFormat("dd.MM.yyyy");
		SimpleDateFormat tagimjahr = new SimpleDateFormat("D");
		SimpleDateFormat jahr = new SimpleDateFormat("yyyy");
		Date currentDate = new Date();

Wie kann ich jetzt mit den einzelnen Werten '+' und '-' rechnen?
z.B. tagimjahr + 90(Tage) = ergebnis

Kann mir einer erklären wie ich das machen muss?

MfG jonasXDD (Anfänger)
 
Über getTime() einer Date-Instance kannst du dir den Stamp holen und damit rechnen.
Allerdings sind Datumsrechnungen mit den ganzen Regeln recht kompliziert.

Außerdem hat Java 7 angeblich eine komplett überarbeitete Date-API bekommen, ich hab sie mir aber noch nicht angesehen.
 
Reicht es nicht, wenn ich das 'datum', 'tagimjahr' und 'jahr' in z.b. a, b und c packe? Wenn ja wie mach ich das?
Java:
		SimpleDateFormat datum = new SimpleDateFormat("dd.MM.yyyy");
		SimpleDateFormat tagimjahr = new SimpleDateFormat("D");
		SimpleDateFormat jahr = new SimpleDateFormat("yyyy");
		Date currentDate = new Date();
 
Du kannst dir die Millisekunden der aktuellen Zeit (vom 1.1.1970 bis jetzt) ausgeben lassen.
Dann errechnest du die Millisekunden, die eine bestimmte Anzahl von Tagen haben und addierst die Millisekunden dann zur aktuellen Zeit (in Millisekunden).
Das Ergebnis kannst du dir mit der passenden Klasse/Methode bspw. SimpleDateFormat wieder in dein gesuchtes String-Objekt umformen lassen.
 
du kannst dein Date auch an einen Calendar übergeben, dann mit deinen Werten rechnen (L-ectron-X sagte wie in erster Antwort), und das Ergebnis wieder ans sdf übergeben. Aber warum einfach, wenns auch kompliziert geht.
 
Vorsicht bei Sommer/ Winterzeit, 0:00 an Tag 1 + 90 Tage in Millisekunden könnte nicht 0:00 am gewünschten Tag sein sondern 23:00 am Vortag,
wenn 'abgerundet' wird, im Zweifel immer noch z.B. 12 Stunden drauf addieren
 
Die Zeit ist mir egal, ich brauche nur das Datum. Aber wie bekomme ich dieses Datum was abrufen in eine Variable oder so, mit der ich dann rechenen kann?

Bin totaler Anfänger.

MfG
 
umso mehr ist Calendar das, wonach du dich richten solltest,
suche danach im Internet, evtl. mit Zusätzen wie 'Tage addieren' und alles sollte sich bestens finden,

für Date evtl. auch, aber mehr Hürden
 
Das geht mit [JAPI]GregorianCalendar[/JAPI] und der roll()-Methode am einfachsten.

Gemeint war wohl add(), nicht roll() ;-)


Außerdem hat Java 7 angeblich eine komplett überarbeitete Date-API bekommen, ich hab sie mir aber noch nicht angesehen.

Nein, Java 7 hat kein überarbeitetes Date-API (nur geringfügige Erweiterungen in GregorianCalendar). Stattdessen gibt es den JSR 310, der ein völlig neues API für Java 8 vorbereitet und jetzt wohl auf der Ziellinie zu sein scheint. Hier ein Blick auf ein API, das nahe am finalen Stand sein könnte (ich drücke mich bewußt vorsichtig aus). Mit diesem neuen API sind Additionen und Dauerberechnungen viel besser als mit dem alten java.util.Calendar bzw. j.u.Date (aber nicht perfekt!!!).

@Blog: Zeit für Java
 
Zuletzt bearbeitet:

Zurück
Oben