Tage/Monate/Jahre vom damaligen bis zum heutigen Datum berechnen

  • 11 Antworten
  • Letztes Antwortdatum
P

PermanenT

Neues Mitglied
0
Guten Tag,
ich fange grade mit Java (App Programmierung) an und möchte von dem 01.07.2014 immer die bisher vergangenen Tage/Monate und Jahre berechnen
Welche ich dann auch auslesen möchte. Sprich ich möchte im Script 01.07.2014 stehen haben und dann immer mit dem Aktuellen Datum schauen
Wie viele Tage/Monate/Jahre vergangen sind.

Wäre echt nett wenn ihr mir helfen könntet.

Mit freundlichen Grüßen
PermanenT
 
DieGoldeneMitte schrieb:
Joda Time ist ne hübsche Bibliothek für sowas.

Stimmt Joda ist eine sehr umfangreiche Library für sowas. Aber wenn man nur die eine Funktion braucht, ist imho keine Library notwendig. Zumindest nicht für die paar Zeilen Code für die eine Funktion. In deinem Link steht ja auch schön der Ansatz da, wie man es selbst lösen kann (Differenz der Timestamps beider Termine und diese dann umrechnen).
 
Das umrechnen ist aber doch gar nicht so trivial.
Mit einigen Zeilen ist es da dann ja doch nicht getan.

cu
 
Schon alleine Schaltjahre können eine normale Subtraktion schwierig machen
 
Ja, Joda kann schon Overkill sein. Aber weder Differenz von Timestamps noch SQLite können zuverlässig (auf einfache Weise) die Differenz in echten Monaten liefern.

Wenn ich es ohne Lib (aber korrekt) machen müsste, würde ich das Calendar Object benutzen den groben Wert aus den Timestamps berechnen und dann mittels (Calender.add und Date.before/after) den Feinschliff machen.
 
Was ist nicht so trivial an der Umrechnung von Millisekunden auf Tage?

ms / 1000 = sek
ms / (1000 * 60) = min
ms / (1000 * 60 * 60) = h
ms / (1000 * 60 * 60 *24) = d

Imho doch eher trivial.

Edit: Kommentar zu Schaltjahr raus genommen, scheint doch ein Problem bei Timestamps zu sein.
 
Zuletzt bearbeitet:
Für Tage hast du recht, aber für Monate fehlen:
*Umstellung zwischen Sommer und Winterzeit.
*Monate sind unterschiedlich lang
*Schaltjahre
*Schaltsekunden (sowas gibt es bisweilen auch noch)

Da kann man mit etwas Pech schon mal einen Monat daneben liegen.
 
Zuletzt bearbeitet:
Hier ist relativ gut erklärt wie man es berechnen kann ohne extra Lib:

Calculating Duration Between Two Dates in Years, Months and Days - CodeProject

Sommer/Winterzeit, Schaltsekunden etc sind uninteressant bei der Berechnung, da du ja nur Tage Monate und Jahre haben willst.
Nur Schaltjahre sind interessant, weil es da einen ganzen Tag extra gibt den du mit einberechnen musst

Aber wie du siehst ist das nicht ganz trivial, aber machbar. ;)
 
Zurück
Oben Unten