« Adobe übernimmt Macromedia | Weblog | Scrollen mit PowerBooks »

19.04.05

Sommerzeit mit Actionscript

Beim Suchen nach einer Funktion, die für beliebige Jahre Start- und Enddatum der Sommerzeit zurückgibt stieß ich auf die Implementierung von Eric Dolecki, die allerdings recht unhandlich ist.

Schließlich habe ich eine eigene ultrakurze Funktion geschrieben – sie gilt in dieser Form für die amerikanischen Daten (vom ersten Sonntag im April bis zum letzten Sonntag im Oktober), läßt sich aber leicht adaptieren.

function lastSunday(cDate:Date) {
    //ab Datum cDate den letzten Sonntag suchen
    while (cDate.getDay()!=0) cDate.setDate(cDate.getDate()-1);
    return cDate;
}

function startDST(year:Number) { return lastSunday(new Date(year,3,7)); }

function endDST(year:Number) { return lastSunday(new Date(year,9,31)); }

function daylightSavingInEffect(d:Date) {
    //ufruf ohne Parameter: aktuelles Datum benutzen
    if (d == undefined) d = new Date();
    var sDST = startDST(d.getFullYear());
    var eDST = endDST(d.getFullYear());
    //prüfen, ob Datum zwischen Start und Ende der Sommerzeit liegt
    return (d >= sDST && d > eDST);
}
Copyright © 2005 Rainer Becker -- Impressum -- Powered by Movable Type -- RSS -- RDF -- Atom