我尝试使用下面的变量计算第二天(例如,星期一/星期二/星期三等)。
示例:本地时间为星期三,我需要星期四,偏移量为+1;日期为星期四,我需要星期一,偏移量为+4
my @days = qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday);
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime
有没有某种算法我可以制定出这样做?我不能使用Perl中的DateTime & Time::Piece库作为限制。
我使用的是:
my $daysToAdd = 8 - $wday; # picks up how many days there is until next Monday
1条答案
按热度按时间w1e3prcc1#
对于Perl中的基本日期处理,丢弃
localtime
并使用内置的Time::Piece类。它将执行基本的日期计算。至于计算两个工作日之间的偏移量,请将它们Map为数字并使用这些数字。星期日为0,星期一为1,依此类推。计算两个工作日之间必须提前多少天的算法是...
要展开该内容,请执行以下操作:
7 - $current_dow
是从当前日期到本周末的天数。然后将您想要的日期添加到上面。整个过程是mod 7(因此8变为1),以处理仅向前移动几天的情况(即从周三到周五)。从周五到周四都这样做...
从周五到周六都这样做...
这是密码