#$year, $month, and $day are set to the first of any given month my ($week,undef)=Week_of_Year($year,$month,$day); my (undef, $tmpmonth, $firstmonday)=Monday_of_Week($week,$year); if ($tmpmonth != $month) { (undef, undef, $firstmonday)=Monday_of_Week(++$week,$year); } #$firstmonday now contains the date of the first Monday of a given month. #Put this in a loop or a sub or whatever and you can call it with arguments. print "First monday of $month/$year is $firstmonday\n";