var jahr = 2007, monat = 03, tag = 16, stunde = 19, minute = 30, sekunde = 0;
var zielDatum = new Date(jahr, monat-1, tag, stunde, minute, sekunde);
function countdown() {
startDatum = new Date();
if (startDatum <= zielDatum) {
var jahre = 0, monate = 0, tage = 0, stunden = 0, minuten = 0, sekunden = 0;
if (startDatum<zielDatum) {
while (startDatum<zielDatum) {
if (startDatum.setFullYear(startDatum.getFullYear()+1)<=zielDatum) {
jahre++;
}
}
startDatum.setFullYear(startDatum.getFullYear()-1);
}
var restTage = 0;
var m = startDatum.getMonth();
if (m == 1-1 || m == 3-1 || m == 5-1 || m == 7-1 || m == 8-1 || m == 10-1 || m == 12-1) {
restTage = 31-startDatum.getDate();
} else if (m == 4-1 || m == 6-1 || m == 9-1 || m == 11-1) {
restTage = 30-startDatum.getDate();
} else if (m == 2-1) {
if (startDatum.getFullYear()%4 == 0 && (startDatum.getFullYear()%100 != 0 || startDatum.getFullYear()%400 == 0)) {
restTage = 29-startDatum.getDate();
} else {
restTage = 28-startDatum.getDate();
}
}
var startTag = startDatum.getDate();
var zielTag = zielDatum.getDate();
startDatum.setDate(1);
zielDatum.setDate(1);
if (startDatum<zielDatum) {
while (startDatum<zielDatum) {
if (startDatum.setMonth(startDatum.getMonth()+1)<=zielDatum) {
monate++;
}
}
startDatum.setMonth(startDatum.getMonth()-1);
}
if (startDatum.getMonth() == zielDatum.getMonth()) {
if (startTag<=zielTag) {
startDatum.setDate(startTag);
} else {
monate--;
tage = restTage+1;
}
} else {
startDatum.setMonth(startDatum.getMonth()+1);
if (startTag>=zielTag) {
tage = restTage+1;
} else {
monate++;
startDatum.setDate(startTag);
}
}
zielDatum.setDate(zielTag);
restTage = Math.floor((zielDatum-startDatum)/(24*60*60*1000));
startDatum.setTime(startDatum.getTime()+restTage*24*60*60*1000);
tage += restTage;
stunden = Math.floor((zielDatum-startDatum)/(60*60*1000));
startDatum.setTime(startDatum.getTime()+stunden*60*60*1000);
minuten = Math.floor((zielDatum-startDatum)/(60*1000));
startDatum.setTime(startDatum.getTime()+minuten*60*1000);
sekunden = Math.floor((zielDatum-startDatum)/1000);
(tage<10) ? tage="0"+tage+"t " : tage=tage+"t ";
(stunden<10) ? stunden="0"+stunden+"h " : stunden=stunden+"h ";
(minuten<10) ? minuten="0"+minuten+"m " : minuten=minuten+"m ";
(sekunden<10) ? sekunden="0"+sekunden+"s" : sekunden=sekunden+"s";
if (monate>0) {
(monate<10) ? monate=monate+"M " : monate=monate+"M ";
txt.text = monate+tage+stunden+minuten+sekunden;
} else {
txt.text = "In: "+tage+stunden+minuten+sekunden;
}
} else clearInterval(interval);
}
interval = setInterval(this, "countdown", 200);