perl - 在 Perl 中循环两个日期的最佳方式是什么?

标签 perl date loops iteration

在 Perl 中的两个日期之间循环的最佳/最清晰的方法是什么? CPAN 上有很多模块可以处理此类问题,但是是否有任何经验法则可以在两个日期之间进行迭代?

最佳答案

对于所有使用日期操作的东西DateTime可能是最好的模块。要使用您自己的增量获取两个日期之间的所有日期,请使用以下内容:

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

my $start = DateTime->new(
    day   => 1,
    month => 1,
    year  => 2000,
);

my $stop = DateTime->new(
    day   => 10,
    month => 1,
    year  => 2000,
);


while ( $start->add(days => 1) < $stop ) {
    printf "Date: %s\n", $start->ymd('-');
}

这将输出:
Date: 2000-01-02
Date: 2000-01-03
Date: 2000-01-04
Date: 2000-01-05
Date: 2000-01-06
Date: 2000-01-07
Date: 2000-01-08
Date: 2000-01-09

关于perl - 在 Perl 中循环两个日期的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6622818/

相关文章:

使用 RelaxNG 进行 XML 模式验证

python - 将自定义字符串转换为日期时间格式

r - 使用循环/其他任何东西来写一串间隔(向量)

c++ - 在 C++ 中打印数组的元素,以及变量的内部与外部初始化

Perl 的 tr///没有做我想做的事

perl - 使用 perl .t 文件在 emacs 中突出显示语法

javascript - 为什么使用日期对象的日期 2014 Oct 31 和 2014 Nov 01 在 Javascript 中具有相同的值?

c++ - 给定一个字符串形式的日期/时间,知道当时是否为 DST 的最佳方法是什么?

c++ - 代码意外地给出了无限循环

linux - 如何在 perl 脚本中插入 awk 命令?