use strict; use warnings; my (@mon, $mon, $year); @mon = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); ($mon, $year) = (localtime(time))[4,5]; $year += 1900 if $year < 2000; if ($mon == 0) { $mon = 12; $year--; } if ($mon == 2) { if ($year % 4 != 0) { $mon[1] = 28; } elsif ($year % 400 == 0) { $mon[1] = 29; } elsif ($year % 100 == 0) { $mon[1] = 28; } else { $mon[1] = 29; } } $year = $year % 100; print sprintf('%02d/%02d/%02d', $mon, 1, $year), " through ", sprintf('%02d/%02d/%02d', $mon, $mon[$mon-1], $year);