# The program below does that, using RFC2445 rules, 
# but they are not the weeks you expected.
# The output is:
# 20020316Z,20020317Z,20020318Z,20020319Z,20020320Z,20020321Z,20020322Z
# 20030628Z,20030629Z,20030630Z,20030701Z,20030702Z,20030703Z,20030704Z
# 20040904Z,20040905Z,20040906Z,20040907Z,20040908Z,20040909Z,20040910Z
#
# - Flávio Soibelmann Glock

use Date::Set;

sub workweek {
    my $year = shift;
    my $workweek = shift;
    return Date::Set->period( time => [ $year . '0101Z', ($year+1) .
'0101Z' ] ) 
        ->rrule(
            WKST =>   'SA',            # our week starts on saturday
            BYDAY =>  [ 'SA', 'SU', 'MO', 'TU', 'WE', 'TH', 'FR' ],  #
list of days we want
            BYWEEKNO => [ $workweek ]   # week we want
        );
}

print workweek(2002,12),"\n";
print workweek(2003,26),"\n";
print workweek(2004,36),"\n";
1;

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to