如何计算Perl中两个日期之间的天数?

前端之家收集整理的这篇文章主要介绍了如何计算Perl中两个日期之间的天数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Heylo,

我想计算(仅使用默认的Perl安装)两个日期之间的天数.这两个日期的格式就像04年5月04日. (DD-MMM-YY)

我找不到任何讨论该日期格式的教程.我应该为这种格式建立自定义日期检查器吗?进一步阅读CPAN上的Date::Calc,这种格式似乎不太可能得到支持.

谢谢.

解决方法

如果您关心准确性,请记住,并不是每天都有86400秒.在某些情况下,基于该假设的任何解决方案都是不正确的.

以下是使用DateTime库的几种不同方式计算和显示日期/时间差异的代码片段.打印的最后一个答案是你想要的答案,我想.

#!/usr/bin/perl -w

use strict;

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

# XXX: Create your two dates here
my $d1 = DateTime->new(...);
my $d2 = DateTime->new(...);

my $dur = ($d1 > $d2 ? ($d1->subtract_datetime_absolute($d2)) : 
                       ($d2->subtract_datetime_absolute($d1)));

my $f = DateTime::Format::Duration->new(pattern => 
  '%Y years,%m months,%e days,%H hours,%M minutes,%S seconds');

print $f->format_duration($dur),"\n";

$dur = $d1->delta_md($d2);

my $dy = int($dur->delta_months / 12);
my $dm = $dur->delta_months % 12;
print "$dy years $dm months ",$dur->delta_days," days\n";
print $dur->delta_months," months "," days\n";
print $d1->delta_days($d2)->delta_days," days\n";
原文链接:https://www.f2er.com/Perl/171460.html

猜你在找的Perl相关文章