1

perlで8月17日の特定の日付の前の日付を見つける方法. 以下のコードを使用して、perl で現在の日付を取得できます。誰かが特定の日付の前の日付を見つけるのを手伝ってくれませんか?

Given date as : Aug 17
Required Date as : Aug 16
#Reverting the Date for the respective TimeZone
my $timezone='london';
my ($dt, $Curr_Bus_Date,$Curr_day);
$dt = DateTime->now(time_zone => $timezone);
$Curr_mon=$dt->strftime('%b');
$Curr_date=$dt->strftime('%d');
$Curr_date=~s/^0/ /;
$Curr_dt="$Curr_mon $Curr_date ";
print "The curr date is $Curr_dt \n";
4

3 に答える 3

5

DateTime クラスにはsubtract()メソッドがあります。それは明確に文書化されています。

$ perl -MDateTime -E'say DateTime->now->subtract(days => 1)'
2012-08-16T10:31:25

Perl の標準 (5.10 以降) の Time::Piece および Time::Seconds クラスでも実行できます。

$ perl -MTime::Piece -MTime::Seconds -E'$t = localtime; $t -= ONE_DAY; say $t'Thu Aug 16 11:37:37 2012

これらのアプローチの両方で、現在の日付から 1 日を差し引いても、常に前日になるとは限らないことに注意してください。

于 2012-08-17T10:33:02.463 に答える
0

メソッドを使用できますAdd_Delta_Days

use Date::Calc qw(Add_Delta_Days);
($year, $month, $day) = Add_Delta_Days(2012,8,17,-1);

よろしく、

于 2012-08-17T10:23:00.950 に答える
0

Date::Manipとその日付計算機能を検討しましたか?

このような一般的に必要な機能については、CPANを実際にチェックしてみたいと思います。そこには成熟した強力なモジュールがたくさんあります。

于 2012-08-17T10:26:17.547 に答える