1

私はperlの経験がなく、オフセットを追加した後に日付を出力するユーティリティを作成する必要があります。フォーマット文字列はstrftimeフォーマット文字列です。

形式:./ adddate number_of_days [format_string]

例:./ adddate -1 "%a、%b%d"#昨日の日付を出力します

4

2 に答える 2

3

いくつかの調査の後、私はコードを書くことができました:

#!/usr/bin/perl 
use DateTime;
$offset = $ARGV[0];
$format = $ARGV[1];
$dt = DateTime->now();
$dt->add( days => $offset );
print $dt->strftime($format)."\n";
于 2012-09-08T21:27:16.253 に答える
0

日数を追加するにtm_mdayは、時間のフィールドを分割形式でインクリメントするだけです ( によって返されlocaltimeます)。A mktime-localtimeラウンドトリップは、月または年のロールオーバーを考慮して再正規化します。

use strict;
use feature qw( say );
use POSIX qw( mktime strftime );

my $offset = $ARGV[0];
my $format = $ARGV[1];

my @t = localtime;
$t[3] += $offset;  # tm_mday field

say strftime( $format, localtime mktime @t );

すべてのコア モジュール。

于 2012-09-09T19:51:22.740 に答える