dポイントプレゼントキャンペーン実施中!

言語は問いません。
先月をYYYYMM形式の文字列で得るクールな方法ってありますか?
Perlで以下のように書けば正しく動きますが、なんかダサイ気がします。

my ($sec, $min, $hour, $mday, $mon, $year) = localtime ;
$year -= 1 if $mon == 0;
$mon = '12' if $mon == 0;
$yearmonth = sprintf("%4d%02d", $year+1900, $mon);

よろしくお願いします。

A 回答 (2件)

あなたが作成されたものを、共通関数として登録し、それを呼び出せば、見た目クールになるかとおもいます。

クールかどうかは、呼び出し側のイメージなので、呼び出されるほうは、結構、泥臭いことをやるのが普通かと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
アルゴリズムといったら大げさですが、きれいなロジックがあるのではないかと思って質問させていただきました。

もちろん関数として処理すべき内容ですね。

お礼日時:2008/01/14 18:02

Perlですが CPAN モジュール DateTime を使って、



use DateTime; # http://search.cpan.org/dist/DateTime/
my $dt = DateTime->now(time_zone=>'Asia/Tokyo') ;
$dt->add( months => -1 ); # 1か月前
print $dt->strftime('%Y%m'); # YYYYMM に整形
# > 200712

ではいかがでしょうか。

参考URL:http://iandeth.dyndns.org/mt/ian/archives/000619 …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
これはすっきりしますね。
モジュールのソースもみてみます。

お礼日時:2008/01/14 18:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!