以下の日付のようにperlで2つの日付の年の差を取得する方法
my $date1 = '2012-08-29T00:00:00.0000Z'
my $date2 = '2010-08-29T00:00:00.0000Z'
助けが必要で、それについてアドバイスしてください。ありがとう
以下の日付のようにperlで2つの日付の年の差を取得する方法
my $date1 = '2012-08-29T00:00:00.0000Z'
my $date2 = '2010-08-29T00:00:00.0000Z'
助けが必要で、それについてアドバイスしてください。ありがとう
use DateTime::Format::RFC3339 qw( );
my $format = DateTime::Format::RFC3339->new();
my $dt1 = $format->parse_datetime('2010-08-29T00:00:00.0000Z');
my $dt2 = $format->parse_datetime('2012-08-29T00:00:00.0000Z');
my $dur = $dt2 - $dt1;
say sprintf "%d years", $dur->in_units('years');
他の人が投稿する正しいソリューションの軽量な代替手段:
my $date1 = '2012-08-29T00:00:00.0000Z';
my $date2 = '2010-08-29T00:00:00.0000Z';
my $years_diff = do { no warnings "numeric"; $date1 - $date2 };
この一見些細な質問で、部分的な年をどのように丸めるかを指定するには、おそらく数十の異なる方法があることに注意してください。
時間や閏年を気にしない場合は、時間を切り捨てて Date::Simple を使用できます。
my $days = Date::Simple->new(substr $date2, 0, 10) - Date::Simple->new(substr $date1, 0, 10);
my $years = int($days / 365);