gpt4 book ai didi

Perl - 如何在不使用 DateTime 的情况下从给定日期获取上一个星期三的日期

转载 作者:行者123 更新时间:2023-12-04 22:30:03 24 4
gpt4 key购买 nike

全部,

我想从给定日期找出上一个星期三的日期。

例如。我的日期为“20150804”,我需要“20150729”。

DateTime 不可用,我也无法安装它。

我看了几个例子,但他们使用的是 DateTime。

你能把我重定向到我可以得到帮助的地方吗?谢谢。

我打算编写如下代码。

代码:

#!/opt/perl-5.8.0/bin/perl

use warnings;
use strict;

my $dt="20150804";
my $prevWednesday=getPrevWednesday($dt);

sub getPrevWednesday()
{
my $givenDt=shift;
...
}

最佳答案

另一种蛮力方法,这次使用另一个核心模块Time::Local .

#!/usr/bin/perl
use warnings;
use strict;

use Time::Local;

sub prev_wednesday {
my $date = shift;
my ($year, $month, $day) = $date =~ /(....)(..)(..)/;
my $time = timelocal(0, 0, 12, $day, $month - 1, $year);
do { $time -= 60 * 60 * 24 } until (localtime $time)[6] == 3; # <- Wednesday
my ($y, $m, $d) = (localtime $time)[5, 4, 3];
return sprintf "%4d%02d%02d\n", 1900 + $y, $m + 1, $d;
}

print $_, ' ', prev_wednesday($_), for qw( 20150804 20150805 20150806
20150101 20000301 20010301 );

关于Perl - 如何在不使用 DateTime 的情况下从给定日期获取上一个星期三的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31804463/

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