2016-04-18 55 views
1

今月から過去6ヶ月の名前を印刷する必要があります。Javaで今月から過去6ヶ月の名前を印刷

2016年4月に実行した場合たとえば、私は印刷する必要があります:11月(2015年)、12月(2015年)、1月(2016年)、2月(2016年)、行進(2016)、4月(2016)

Format formatter = new SimpleDateFormat("MMMM YYYY"); 
Calendar c = Calendar.getInstance(); 

String[] thisAndLastFiveMonths = new String[6]; 
for (int i = 0; i < thisAndLastFiveMonths.length; i++) { 
    thisAndLastFiveMonths[i] = formatter.format(c.getTime()); 
    c.add(Calendar.MONTH, -1); 
    System.out.println(c); 
+0

あなたの質問は何ですか? 投稿したコードが機能しない場合はどうなりますか? この情報を提供してくれたら、 – dquijada

答えて

6

Java Time APIを使用すると、現在の年月を表すYearMonthオブジェクトを作成し、minusMonthsを呼び出して数ヶ月を減算することができます。

次に、Month.getDisplayName(style, locale)で月名のテキスト表現を取得できます。指定されたTextStyleは、出力のスタイルを設定するために使用されます。あなたの場合はを使用できます:

短いテキスト、通常は省略形です。たとえば、曜日の月曜日は "Mon"を出力することがあります。 2016年4月に実行

public static void main(String[] args) { 
    for (int i = 5; i >= 0; i--) { 
     YearMonth date = YearMonth.now().minusMonths(i); 
     String monthName = date.getMonth().getDisplayName(TextStyle.SHORT, Locale.ENGLISH); 
     System.out.println(monthName + "(" + date.getYear() + ")"); 
    } 
} 

版画、:

Nov(2015) 
Dec(2015) 
Jan(2016) 
Feb(2016) 
Mar(2016) 
Apr(2016) 
+0

これはあまりにも多くのトゥナキ –

関連する問題