Date subtrahieren?

lord_fritte

Mitglied
Hallo, ich bin java Anfänger, habe aber schon Erfahrung mit C/C++ und C#.
Und möchte 2 Date-Objekte subtrahieren um die Differenz(Jahre, Monate, Tage, Stunden, Minuten) zu ermitteln, aber leider musste ich feststellen dass das Date-Objekt über keine Operatoren verfügt.
Zuerst habe ich so versucht:
Java:
Date d1 = new Date(2010, 2, 6, 17, 49);
Date d2 = new Date(2010, 2, 6, 18, 49);
Date d3 = new Date(d2.getTime() - d1.getTime());
Aber da kommt irgendwie Mist raus angeblich:
Jahre: 70
Monate: 2
Tage: 4
Stunden: 2
Minuten: 0

Gibt es eine andere Lösung zum rechnen, welche auch Schaltjahre berücksichtigt?
 
Ne da kommt auch mist raus..

Java:
long d3 = d2.getTime() - d1.getTime();

Hä? Wieso das? Da kommt 3600000ms raus..das musst du nun in Stunden oder watt weiss ich in was du das alles umrechnen willst - umrechnen ! Modulo und/oder allgemeine Mathematik sind das einzige was man braucht. Per google lässt sich da sicherlich ansonsten auch schon was fertiges finden
 
....
Date (Java Platform SE 6)
Code:
Parameters:
date - the milliseconds since January 1, 1970, 00:00:00 GMT.

/edit: Schau mal hier: Java Blog Buch : D) Differenz zweier Daten

Java:
	Date d1 = new Date(2010, 2, 6, 17, 49);
	Date d2 = new Date(2010, 2, 6, 18, 49);
	long difference = d2.getTime() - d1.getTime();
	int days = (int) (difference / (1000 * 60 * 60 * 24));
	int hours = (int) (difference / (1000 * 60 * 60) % 24);
	int minutes = (int) (difference / (1000 * 60) % 60);
	int seconds = (int) (difference / 1000 % 60);
	int millis = (int) (difference % 1000);
	System.out.println("Difference: " + days + " days, " + hours
		+ " hours, " + minutes + " minutes, " + seconds
		+ " seconds and " + millis + " milliseonds");

/edit achja apropros *g* : GregorianCalendar | Android Developers (Since: API Level 1)
 
Zuletzt bearbeitet:
....
Date (Java Platform SE 6)
Code:
Parameters:
date - the milliseconds since January 1, 1970, 00:00:00 GMT.

/edit: Schau mal hier: Java Blog Buch : D) Differenz zweier Daten

Java:
	Date d1 = new Date(2010, 2, 6, 17, 49);
	Date d2 = new Date(2010, 2, 6, 18, 49);
	long difference = d2.getTime() - d1.getTime();
	int days = (int) (difference / (1000 * 60 * 60 * 24));
	int hours = (int) (difference / (1000 * 60 * 60) % 24);
	int minutes = (int) (difference / (1000 * 60) % 60);
	int seconds = (int) (difference / 1000 % 60);
	int millis = (int) (difference % 1000);
	System.out.println("Difference: " + days + " days, " + hours
		+ " hours, " + minutes + " minutes, " + seconds
		+ " seconds and " + millis + " milliseonds");

/edit achja apropros *g* : GregorianCalendar | Android Developers (Since: API Level 1)

Aber Schaltjahre muss ich auch selber ausrechnen?? Wie gesagt ich komme aus der C# welt, da macht man d1 - d2 und fertig.. so was umständliches muss man da nicht machen.
 

Neue Themen


Zurück
Oben