my @sundays = ([]); my @date = (2005, 1, 1); $date[2]++ while Day_Of_Week(@date) != 7; DATE: { push @sundays, \@date; @date = Add_Delta_Days( @date, 7 ); last if $date[0] == 2006; redo DATE; } # Now, $sundays[1] == ( 2005, 1, 2 ) # $sundays[2] == (2005, 1, 9 ) # etc.