Regina Schaukrug: Meine dumme Frage zum Jahresende: Anzahl der Kalenderwochen im Kalenderjahr.

Beitrag lesen

problematische Seite

Die zweite Bedingung, nämlich wieviele KWs ein Jahr hat,

Wenn der 1.1 und der 31.12. auf einen Donnerstag fallen hat das Jahr 53 Wochen, sonst stets 52.

Für den Rest gilt: Perlianer sollten einfach nicht mit Datums- und Zeitangaben rechnen. Irgendwie wurde Perl nicht dafür gemacht. So entstand auch das Jahr-2000-Problem.

#!/usr/bin/perl -W

use POSIX;

for ( $i=2000; $i<2100; $i++ ) {
        print ( $i, " : ",  getWeeksOfYear($i), "\n" );
}
exit;


sub getWeekdayFromYMD {
    return strftime( '%w', 1, 1, 1, $_[2], $_[1]-1, $_[0]-1900 );
}


sub getWeeksOfYear {
    if  (
            ( 4 == getWeekdayFromYMD( $_[0], 1 , 1  ) )
            and
            ( 4 == getWeekdayFromYMD( $_[0], 12, 31 ) ) 
    ) {
        return 53;
    } else {
        return 52;
    }
}