2016-09-13 7 views
1

何らかの理由でplusDays(1)を使用しても正しい答えが得られません。代わりに結果を1だけインクリメントします。このコードを以下のように正しく動作させるために変更するもの。 plusDays(1)を削除しても機能しません。私はここで何が間違っているのですか?Javaの異なる結果で2つの日付間の日付のリストを取得

それは出力

September 13, 2016 
September 14, 2016 
September 15, 2016 

なく

September 14, 2016 
September 15, 2016 
September 16, 2016 

コード必要があります。

String startDate = "2016-09-13"; 
String endDate = "2016-09-15"; 
LocalDate start = LocalDate.parse(startDate); 
LocalDate end = LocalDate.parse(endDate); 
List<LocalDate> totalDates = new ArrayList<>(); 

while (!start.isAfter(end)) { 
    totalDates.add(start); 
    start = start.plusDays(1); 

    Milestones modelMilestones = new Milestones(); 
    modelMilestones .setMilestone(start.toString("MMMM dd, yyyy")); 
    mDataList.add(modelMilestones); 

} 
+0

コードをデバッグしようとしましたか? – MrSmith42

+1

あなたは 'plusDays'を呼び出した後に' toString' *を呼び出しています。ただしないでください。 'start = start.plusDays(1);'をループの最後の行に移動してください。 –

+1

サイドノート。あなたの 'totalDates'は同じオブジェクトへの複数の参照を含みます。 – talex

答えて

4

このかつてのように試してみてください。

while (!start.isAfter(end)) { 
       totalDates.add(start); 
       Milestones modelMilestones = new Milestones(); 
       modelMilestones .setMilestone(start.toString("MMMM dd, yyyy")); 
       mDataList.add(modelMilestones); 

       start = start.plusDays(1); 
      } 
関連する問題