0

一年の何ヶ月かをループして印刷したい。

例えば:

01/2012 02/201203/201204/2012など..

これが私のコードです:

 Calendar myDate = Calendar.getInstance();

 for (int i = 0; i < totalMonths; i++) {
        TableRow row = new TableRow(this);
        myDate.add(Calendar.MONTH, i);
        FinalDate = df.format(myDate.getTime());
        TextView tvNum = new TextView(this);
        tvNum.setText("      " + FinalDate);
        row.addView(tvNum);
        table.addView(row);
    }
}

intで印刷中です

1 2 3 4 5

ただし、上記のコードに示されているように、日付文字列に変換すると、次のようになります。

05/2012 06/2012 08/2012 11/2012 03/2013 08/2013

基本的に、月のギャップは1、2、3、4などです...私の計算は間違っていますか?(intの1、2、3、4などのリストを表示すると、想定どおりに動作します)、または月を印刷するためのより良い方法はありますか?

行きたいだけ

今日の日付+1か月今日の日付+2か月など...このm

4

4 に答える 4

2

i毎回、現在の日付に月を追加します。

したがって、3回目の反復2では前の日付に月が追加され、4回目の反復では月が追加されます3

1毎回月だけ追加する必要があります。

于 2012-05-24T02:38:53.847 に答える
1

myDateをどこで定義しますか?ループの外では、私は仮定していますか?その場合、最初は0 + 0、2回目は(0 + 0)+1、3回目は(0 + 0 + 1)+2などを追加します。

これを修正するには、ループ内でmyDateを定義する必要があります。

于 2012-05-24T02:39:12.473 に答える
1

それ以外の :

myDate.add(Calendar.MONTH, i);

置く

myDate.add(Calendar.MONTH, 1);

または、毎回新しい日付を作成します。現在、実際のmyDateオブジェクトを操作しています。

于 2012-05-24T02:39:19.333 に答える