ルモーリン
ホーム 更新 Perl ランドナー サービス 雑談 コースガイド 鉄ゲタ 自転車 Linux リンク 連絡先

日付計算や時間計算にDateTime

2018-12-16

こんなコードで

#!/usr/bin/env perl -w

use utf8;
use strict;
use warnings;

use v5.10;

use DateTime;
use Encode::Argv;
use Encode::Locale;

use open IO => ":utf8";

binmode STDIN, ":encoding(console_in)";
binmode STDOUT, ":encoding(console_out)";

$| = 1;

my $d = DateTime->new(
	year => 2018,
	month => 1,
	day => 1,
	time_zone => "local",
);

my $d1 = $d->clone->add(days => 1);
my $d2 = $d->clone->add(months => 1);
my $d3 = $d->clone->add(years => 1);

say $d;
say $d1;
say $d2;
say $d3;

違和感のない結果

Windows(ActivePerl/5.26)とLinux(CentOS/5.24)で同じ結果を確認しています。
 2018-01-01T00:00:00
 2018-01-02T00:00:00
 2018-02-01T00:00:00
 2019-01-01T00:00:00

他のモジュールでは

上手く行かないモジュールがあるようです。