in reply to Calculating the "nearest" week

I've found Date::Manip to be particularly useful for complex date functions.

if ((localtime(time))[6] == 0) { # Sunday print Date::Manip::ParseDate('next Monday'); print Date::Manip::DateCalc('next Monday','+ 4 business days'); } elsif ((localtime(time))[6] == 1) { # Monday print Date::Manip::ParseDate('today'); print Date::Manip::DateCalc('today','+ 4 business days'); } else { print Date::Manip::ParseDate('last Monday'); print Date::Manip::DateCalc('last Monday','+ 4 business days'); }

UPDATE: Added consideration for running the code on Monday. I don't think there are any potential implications of a MTWTFSS vs a SMTWTFS week (Saturday is still closer to "last" week; Sunday is still closer to "next" week).