Anzahl Monate zwischen zwei Datumswerten
-
Hallo, wie bekomme ich die Anzahl der Monate die zwischen 2 Datumswerte (COleDateTime) liegen.
Ich habe es schon mit COleDateTimeSpan probiert, aber da gibt es keine Funktion die die Anzahl der Monate liefert. Hat da jemand abhilfe????
-
Hallo !
Nur so eine Idee:
- einen Zeitintervall definieren (COleDateTimeSpan), z.B. 27 Tage (wegen Februar)
- Monat vom ersten Datum merken
- das definierte Zeitintervall zum erstem Datum dazuaddieren
- kontrollieren, ob das neue Datum vor dem Ende-Datum liegt oder nach dem Ende-Datum, aber im selben Monat
- wenn ja: Monat vom neuen Datum mit gemerktem Datum vergleichen
- wenn die Monate unterschiedlich sind: Monat-Zähl-Variable hochzählen
- Monat vom neuen Datum merken, Zeitintervall addieren usw.Tschüss
-
*schluck*
Warum müssen alle so kompliziert denken, doch nicht etwa, weil C++ etwas komplizierter ist, oder ??
int nMonths = date2.GetMonth() - date1.GetMonth();
-
Rene:
Wollte ich auch bereits schreiben, Aber es kommt darauf an wie weit die Tage auseinanderliegen.
Diese Lösung funzt nicht mit Datum im neuen Jahr oder noch länger.Man muss hier dann auch das Jahr betrachten
-
Ok, hab die Jahresgrenzen vergessen
-
Is ja auch ne einfache Lösung von isabeau, sah komplizierter aus
int nMonths=0; for( int m=date1.GetMonth(); date1<date2; date1+=COleDateTimeSpan( 27, 0, 0, 0)) { int n = date1.GetMonth(); if( m != n) { nMonths++; m = n; } }