これ何て呼びますか Part2

Javaで“前月”の年月(YYYYMM形式)を取得するロジックを組んだのですが、
以下のコードを実行すると、前月の月が1桁の場合に、「YYYYM」(5桁)の形式になってしまいます。
(元がintなので当然かも知れませんが。)

Calendar calendar = Calendar.getInstance();
String yearMonth =
String.valueOf(calendar.get(Calendar.YEAR)) + String.valueOf(calendar.get(Calendar.MONTH) - 2);

こちら、解決する方法はありますでしょうか?
※他に気掛かりな点としては、2012年の1月に実行した時に、正しく「201112」を返してくれるか、というのもあります。

また、別の実装方法として、以下の場合は「YYYYMM形式」で取得出来るのですが、
“前月”に変換する方法が分かりませんでした。。。

Calendar calendar = Calendar.getInstance();
String yearMonth2 =
new SimpleDateFormat("yyyyMM").format(calendar.getTime());


ロジックはシンプルである方が助かります。
分かる方、教えて下さい!

A 回答 (2件)

Calendar calendar = Calendar.getInstance();


calendar.add( Calendar.MONTH, -1 );
String lastMonth = new SimpleDateFormat( "yyyyMM" ).format( calendar.getTime() );

Javaの開発をするなら、Javadoc くらい読めるようになりましょうね。
    • good
    • 2
この回答へのお礼

ありがとうございます!
Javadoc、慣れないんすよねぇ。。

お礼日時:2011/10/13 12:57

2番目の方法で9分9厘出来てます。

後は、文字列にする前に Calendar オブジェクトの状態を Calendar.add を使って一月分前にするだけです。
http://java.sun.com/javase/ja/6/docs/ja/api/java …
http://www.techscore.com/tech/Java/JavaSE/Utilit …

この回答への補足

ご回答ありがとうございます!

ただ、試してみたのですがどのようにaddメソッドをいれたらいいのか分からず。。

補足日時:2011/10/13 10:47
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A