如何从今天开始计算一周前的日期

时间:2014-11-21 07:49:19

标签: perl

我想用一种特定的格式计算一周前的日期,并将其放入变量中。例如,今天是Nov 21st. 2014,我想打印出来:上周是2014-11-14

我知道我们可以使用Date::Calc模块,但我不知道如何。

4 个答案:

答案 0 :(得分:7)

检查Time::PieceTime::Seconds核心模块,

use Time::Piece;
use Time::Seconds;

my $t = localtime() - ONE_WEEK;
print $t->ymd;

输出

2014-11-14

答案 1 :(得分:3)

DateTime版本

use DateTime;
my $now = DateTime->now(time_zone => 'local')->subtract(weeks => 1);
print $now->ymd, ' ',$now->hms;

日期::计算版

使用Date :: Calc模块

可以减去7天而不是一周
use Date::Calc qw(Add_Delta_Days);
my @date = Add_Delta_Days( 2014, 11, 21, -7 );
print join('-', @date);

OUTPUT
    2014-11-14

答案 2 :(得分:1)

使用Date::Manip

非常简单
    use Date::Manip;
    my $today = ParseDate("today");
    my $weeksago = DateCalc($today,"-7d");

答案 3 :(得分:1)

为什么不从本地时间的“mday”字段中减去X天?这个例子显示从八月底开始减去60天。我不确定是谁纠正了这个月,但我认为我得到了正确答案......

Saureus08BA02176_01020 NA 324.08332
Saureus08BA02176_01131 NA 999.00000
Saureus08BA02176_01302 COG3763 S NA
Saureus08BA02176_01834 COG0744 M NA
Saureus08BA02176_02020 COG1854 T NA
Saureus08BA02176_02481 COG0579 R 4.07781
Saureus08BA02176_02495 COG1510 K NA
相关问题