• 締切済み

先月(YYYYMM)の生成方法

言語は問いません。 先月を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); よろしくお願いします。

みんなの回答

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

あなたが作成されたものを、共通関数として登録し、それを呼び出せば、見た目クールになるかとおもいます。クールかどうかは、呼び出し側のイメージなので、呼び出されるほうは、結構、泥臭いことをやるのが普通かと思います。

10940
質問者

お礼

回答ありがとうございます。 アルゴリズムといったら大げさですが、きれいなロジックがあるのではないかと思って質問させていただきました。 もちろん関数として処理すべき内容ですね。

  • poppo64
  • ベストアンサー率57% (11/19)
回答No.1

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.html
10940
質問者

お礼

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