A
altes-kind
Gast
Hallo Leute,
ich habe folgende Methode um die Dauer in Tagen zwischen zwei Datumswerten zu berechnen
Wenn ich nun z.B. die Anzahl der Tage zwischen dem 17.06.2005 und 30.08.2005 berechnen will kommt er auf folgendes Ergebnis:
Wenn ich die gleiche Methode über in diesem Fall alle 3 Monate laufen lasse kommt er auf folgende Ergebnisse:
Warum kommt diese Differenz (76 Tage zu 75 Tage) zustande??
Danke für eure Hilfe!
altes-kind
ich habe folgende Methode um die Dauer in Tagen zwischen zwei Datumswerten zu berechnen
Code:
/**
* Berechnung eines Zeitraumes in Tagen - Parameter in interner Darstellung
*/
public long determineDuration(String from, String to) {
long days = 0;
long ms1 = 0;
long ms2 = 0;
try {
Calendar date1 = Calendar.getInstance();
date1.clear();
date1.set(Integer.parseInt( from.substring( 0, 4 ) ),
Integer.parseInt( from.substring( 4, 6 ) ),
Integer.parseInt( from.substring( 6, 8 ) ));
ms1 = date1.getTime().getTime() / ( 1000 * 60 * 60 * 24 );
Calendar date2 = Calendar.getInstance();
date2.clear();
date2.set(Integer.parseInt( to.substring( 0, 4 ) ),
Integer.parseInt( to.substring( 4, 6 ) ),
Integer.parseInt( to.substring( 6, 8 ) ));
ms2 = date2.getTime().getTime() / ( 1000 * 60 * 60 * 24 );
}
catch ( Exception e ) {
System.out.println("Class 'Datum' - Method 'determineDuration()': "+e.toString());
}
days = ms1 < ms2 ? ms2 + 1 - ms1 : 0;
return days;
}
Code:
determineDuration(20050617, 20050830) = 76
Code:
determineDuration(20050617, 20050630) = 14
determineDuration(20050701, 20050731) = 31
determineDuration(20050801, 20050830) = 30
------------------------------------------
SUMME = 75
Danke für eure Hilfe!
altes-kind