# Tage zu vorgegebenen Datum addieren



## sreinhardt (17. März 2005)

Hallo!

 Ich möchte zu einem bestimmten Datum, das als DD.MM.YYYY vorliegt, eine bestimmte Anzahl an Tagen addieren. Natürlich muß das Ergebnis ein gültiges Datum sein, also nicht 34.03.2005. Wie mache ich das mit Javascript?


----------



## con-f-use (17. März 2005)

Du addierst die Anzahl der Milisikunden (deine Tage in Milisekunden umgerechnet) zu dem date.getTime()-Wert von deinem Datum dazu und machst ein neues Datum mit diesen Milisekunden.
	
	
	



```
//Der Knackpunkt an der Sache sind die folgenden zwei Zeilen
 var	heute = new Date(2005,2,17), //Zählung der Monate beginnt bei 0=Januar
       	HeutePlusDreiTage = new Date(heute.getTime() + 3 * 24 * 60 * 60 * 1000),
       
       // Ab hier soll es dir nur zeigen, dass es funktioniert
       
       	d = HeutePlusDreiTage.getDate(),
       	m = HeutePlusDreiTage.getMonth() + 1,
       	y = HeutePlusDreiTage.getFullYear();
       	
       display =	((d<10) ? "0" : "") + d + "." +
       		((m<10) ? "0" : "") + m + "." +
       		((y<10) ? "0" : "") + y;
       				
       alert(display);
```


----------



## sreinhardt (20. März 2005)

@con-f-use: Vielen Dank für den Code.

  Der funktioniert soweit auch sehr gut. Ein Problem gibt es jedoch:

 Nehme ich z.B. den 30.04.2005 und addiere einen Tag dazu, gibt es den 31.4.2005. So passiert es bei jedem Monat am 30. oder 31. Ich dachte, ein ungültiges Datum würde automatisch in ein korrektes umgewandelt. Wo liegt da jetzt der Fehler? An allen anderen Tagen funktioniert es. Das Problem tritt bei allen Browsern auf.


----------



## con-f-use (20. März 2005)

Eigentartig. Es müsste so funktionieren. Ich kann auch den Fehler nicht entdecken bzw. reproduzieren - bei mir funktioniert's perfekt.

_Edit:_ Dir ist schon klar, dass auch bei der Eingabe die Zählung der Monate bei 0 und nicht bei eins anfängt? Also 0=Januar, 1=Februar usw.


----------

