1

ここの初心者。申し訳ありませんが、よろしくお願いします。将来の日付があります

(ie:2013-06-09 / $fields[12])

今日は引く必要があります

(ie:2013-03-08)

残り日数を取得します。

4

2 に答える 2

5

DateTimeを使用します。日付を文字列として開始する場合は、DateTime :: Format::Strptimeを使用して解析できます。

use DateTime                   qw( );
use DateTime::Format::Strptime qw( );

my $format = DateTime::Format::Strptime->new(
    pattern   => '%Y-%m-%d',
    time_zone => 'local',
    on_error  => 'croak',
);

my $ref  = DateTime->today( time_zone => 'local' );
my $dt   = $format->parse_datetime('2013-06-09');
my $days = $ref->delta_days($dt)->in_units('days');

print(
   $dt < $ref ? "$days days ago\n" :
   $dt > $ref ? "$days days from now\n" :
   "today\n");
于 2013-03-08T21:09:37.377 に答える
1

DateTimeモジュールを使用します。

use DateTime;

my $d1 = DateTime->new(
      year       => 2013,
      month      => 9,
      day        => 6
);

my $d2 = DateTime->now;
my $diff = $d2->delta_days($d1);

print $diff->delta_days, "\n";  # 182 (from 8/3/2013)
于 2013-03-08T21:08:23.900 に答える