gpt4 book ai didi

perl - 在Perl中如何找到给定日期的前一个星期一的日期?

转载 作者:行者123 更新时间:2023-12-04 04:43:37 25 4
gpt4 key购买 nike

我正在寻找一个 Perl 脚本,它可以为我提供任何指定日期的最后一个星期一。

例如对于日期 2011-06-11,脚本应返回 2011-06-06

最佳答案

我假设如果给定日期是星期一,则您需要相同的日期(而不是前一个星期一)。这是使用 DateTime 实现的一种方法:

use DateTime;

my $date = DateTime->new(year => 2011, month => 6, day => 11);
my $desired_dow = 1; # Monday
$date->subtract(days => ($date->day_of_week - $desired_dow) % 7);
print "$date\n";

(实际上,对于星期一的特殊情况, % 7 不是必需的,因为 $date->day_of_week - 1 将始终为 0–6,并且 mod 7 是空操作。但对于 % 7 ,它适用于任何想要的星期几,而不仅仅是星期一。)

如果您确实想要前一个星期一,则可以更改减法:
$date->subtract(days => ($date->day_of_week - $desired_dow) % 7 || 7);

如果您需要解析在命令行上输入的日期,您可能需要查看 DateTime::Format::Natural .

关于perl - 在Perl中如何找到给定日期的前一个星期一的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6262151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com