# Abstand zwischen zwei Daten berechnen



## ChackZz (7. Nov 2007)

Kann mir jemand vielleicht einen Ansatz geben, um den Abstand in Tagen zwischen zwei Daten zu berechnen. (Beispiel vom 15.08.2006 bis zum heutigen Tag). Die beiden Daten sollen dabei in Form von jeweils drei Zahlen (Tag, Monat, Jahr) im Programm hinterlegt sein.

Ich stehe total auf dem Schlauch gerade...
Ich habe mir Gedanken darüber gemacht, es irgendwie mit Hilfe von System.CurrentTimeMillis zu berechnen, das verstößt ja aber irgendwie gegen den zweiten Teil der Aufgabe...

Eventuell was mit calendar?!
Klassen hatten wir jedoch noch gar nicht in der Vorlesung, sodass ich eigtl. ausschließe, dass so etwas in der Übung rankommt.


lg


----------



## SlaterB (7. Nov 2007)

tippe 
datum differenz
in die Forumsuche ein, dann findest du einiges,

vielleicht mehr schlechtes als gutes,
es geht fast nichts über das klassische Rechnen per Hand,
wobei man dann allerdings Tage pro Monat und Schaltjahre berücksichtigen muss,
ist machbar

fange mit kleinen Aufgaben an, etwa eine Operation, die die Anzahl der Tage in einem bestimmten Jahr berechnet


----------



## maki (7. Nov 2007)

Vielleciht wären die commons-lang auch einen Blick wert: http://commons.apache.org/lang/api-release/index.html

zB. die DurationFormatUtils


----------



## André Uhres (7. Nov 2007)

```
while (!(tag1 == tag2 && monat1 == monat2 && jahr1 == jahr2)) {
            tage++;
            tag1++;
            //hier noch zwei verschachtelte if's für Monats- und Jahreswechsel
        }
```


----------



## The_S (8. Nov 2007)

Warum so kompliziert wenns auch einfach geht?


```
GregorianCalendar date1 = new GregorianCalendar(2006, 7, 15);
		GregorianCalendar date2 = new GregorianCalendar(2007, 10, 7);
		long diffInMillis = date2.getTimeInMillis() - date1.getTimeInMillis();
		long diffInDays = diffInMillis / 1000 / 60 / 60 / 24;
		System.out.println(diffInDays);
```

[edit] achso, ohne Klasse


----------



## André Uhres (8. Nov 2007)

Ja, das Progrämmchen ist eigentlich auch nicht so sehr kompliziert.
Der einzige kleine Leckerbissen ist wohl die Berechnung der Februartage (wegen der Schaltjahre):
((jahr1 % 400 == 0 || (jahr1 % 4 == 0 && jahr1 % 100 != 0)) ? 29 : 28))


----------

