首页 > 解决方案 > 使用 DateTime 计算日期之间的天数

问题描述

我使用 DateTime 对象有 2 个日期,并且在尝试仅使用 delta_days 获得天数差异时,它无法正常工作。我以为它会给我总天数,但看起来它不包括几个月的天数。

use DateTime;
use DateTime::Format::Strptime;
use DateTime::Format::Duration;

my $parseseq = DateTime::Format::Strptime->new(pattern => '%Y%m%d');
my $todaydate = "20190326";
my $lastdate  = "20190223";

my $currmark = $parseseq->parse_datetime($todaydate);
$currmark->set_formatter($parseseq);
my $lastmark = $parseseq->parse_datetime($lastdate);
$lastmark->set_formatter($parseseq);
my $diff = $currmark->subtract_datetime($lastmark);
my $diffdays = $diff->delta_days();
print "\ntodaydate $todaydate\n";
print "lastdate  $lastdate\n";
print "Diff Days $diffdays\n\n";

输出:

todaydate 20190326
lastdate  20190223
Diff Days 3

标签: perl

解决方案


推荐阅读