Thomas Meinike: Tage zwischen Start und Enddatum ermitteln

Beitrag lesen

Hallo,

bsp:
startdatum = 08.10.2002
enddatum = 11.10.2002

wie bekommen ich also raus, dass der 09.10.2002 und der 10.10.2002 dazwischen liegen.
man müsste dabei noch die unterschiedliche anzahl der monatstage und den jahreswechsel zwischen start und ende beachten.

Solche Aufgaben kann das Datumsobjekt von JavaScript fast alleine loesen, speziell die Kontrolle von Uebergaengen zwischen Monaten und Jahren sowie Schaltjahren (d. h. es kann auch mit mehr als 31 Tagen im Monat und 12 Monaten im Jahr korrekt umgehen).

Dieser Ansatz funktioniert mit IE, Netscape (incl. 4.x), Mozilla, Opera:

startdatum="08.10.2002";
enddatum="11.10.2002";

t1=parseInt(startdatum.substr(0,2),10);
m1=parseInt(startdatum.substr(3,2),10);
j1=parseInt(startdatum.substr(6,4),10);

t2=parseInt(enddatum.substr(0,2),10);
m2=parseInt(enddatum.substr(3,2),10);
j2=parseInt(enddatum.substr(6,4),10);

i=1;
ende=new Date(j2,m2-1,t2);
while(new Date(j1,m1-1,t1+i) < ende)
{
  datum=new Date(j1,m1-1,t1+i);
  t=datum.getDate().toString();
  t=(t.length==2)?t:"0"+t;
  m=(datum.getMonth()+1).toString();
  m=(m.length==2)?m:"0"+m;
  j=datum.getFullYear().toString();
  alert(t+"."+m+"."+j);
  i++;
}

Ergebnis: 09.10.2002 und 10.10.2002

Hinweis: Wichtig ist der Radix-Parameter 10 bei parseInt(), um das Oktalsystem bei fuehrende Nullen zu vermeiden.

MfG, Thomas