# Tage zählen



## jenno (10. Juni 2004)

Langsam versteh ich die Welt nicht mehr....

Ich bins nochmal zum Thema Tage zählen (es ist mittlerweile schon ne Weile her).
Hab hier ne kleine Beispielfunktion:


```
<script language="javascript">
	
	var oDate1 = new Date();
	var oDate2 = new Date();
	
	var d1 = 1;
	var m1 = 1;
	var y1 = 2003;
	
	var d2 = 31;
	var m2 = 12;
	var y2 = 2003;

	oDate1.setDate(d1);
	oDate1.setMonth(m1-1);
	oDate1.setYear(y1);
	
	oDate2.setDate(d2);
	oDate2.setMonth(m2-1);
	oDate2.setYear(y2);
	
	var iDays = Math.floor((oDate2.getTime()-oDate1.getTime())/(1000 * 86400));

	alert(iDays);
</script>
```

Wenn ich das Monat für Monat probiere (also wieviel Tage ein Monat hat), dann funktioniert das prima.  Aber wenn ich wissen will, wieviel Tage zwischen dem 01.01. und dem 31.12. eines Jahres liegen, dann wird mir ein ganzer Monat unterschlagen.  Wie kann das sein?

Kann mir jemand helfen, was ich hier vielleicht/sicherlich übersehen habe?

Edit:  Es ist sogar so, dass der Fehler erst kommt ab dem 31.12.   Zähle ich die Tage zwischen 1.1. und 30.12. dann klappts auch noch!


----------



## Quaese (10. Juni 2004)

Hi,

versuch es mal so:

```
var d1 = 1;
    var m1 = 1;
    var y1 = 2003;

    var d2 = 31;
    var m2 = 12;
    var y2 = 2003;

    var oDate1 = new Date(y1, (m1-1), d1);
    var oDate2 = new Date(y2, (m2-1), d2);

    var iDays = Math.floor((oDate2.getTime()-oDate1.getTime())/(1000 * 86400));

    alert(iDays);
```
Ciao
Quaese


----------



## jenno (11. Juni 2004)

Ja, super.  So funktioniert es.  Aber warum funktioniert dann das Date.setDate()...setMonth()....usw. nicht?

Auf jeden Fall erstmal danke!


----------

