my $wday = (localtime)[6]; my $offset = $wday == 1 ? 3 : ($wday == 0 ? 2 : 1); my @date = localtime(time - 86400*$offset); printf "%s-%s-%s\n", 1900+$date[5], 1+$date[4], $date[3];