2011-01-05 4 views
2

私はJavaの2つの日付している:毎日私は親切で、この中に日付を入れているSystem.out.println()を行うことができますように、今私は、それらを反復するためにのJava:指定した日付の反復

Wed Jan 05 00:00:00 CET 2011 
Sat Jan 15 23:59:59 CET 2011 

をしたいですコンソール:

2011-01-05 
2011-01-06 
2011-01-07 
... 
2011-01-13 
2011-01-14 
2011-01-15 

どうすればいいですか?

最高のお付き合い

更新:

Calendar calend = Calendar.getInstance(); 
calend.setTime(myObject.getBeginDate()); 
Calendar beginCalendar = new GregorianCalendar(calend.get(Calendar.YEAR), calend.get(Calendar.MONTH), calend.get(Calendar.DATE)); 
calend.setTime(myObject.getEndDate()); 
Calendar endCalendar = new GregorianCalendar(calend.get(Calendar.YEAR), calend.get(Calendar.MONTH), calend.get(Calendar.DATE)); 
while (beginCalendar.compareTo(endCalendar) <= 0) { 
    // ... calculations 
    beginCalendar.add(Calendar.DATE, 1); 
} 
+2

http://stackoverflow.com/questions/1174899/java-joda-time-implement-a-date-range-iteratorを見ましたか? – DerMike

答えて

3

SimpleDateFormatを使用して、一度に一日

出力をインクリメントするのGregorianCalendarオブジェクトを使用します。あなたは簡単に、最終的な値をインクリメントし、できるように

は、Dateオブジェクトに、文字列から、あなたの日付を取得するには、その後、次の

SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy"); 
Date date = format.parse(yourDateString); 

をしなければならない、あなたは、GregorianCalendarのに変換する必要があります必要な方法で別のSimplerDateFormatを使用して日付を出力します。さまざまなコードのドキュメントを参照してください。

更新:は 更新、あなたのコード更新を次のよう、あなたは、単に以下の

Calendar beginCalendar = Calendar.getInstance(); 
beginCalendar.setTime(myObject.getBeginDate()); 
Calendar endCalendar = Calendar.getInstance(); 
beginCalendar.setTime(myObject.getEndDate()); 


while (beginCalendar.compareTo(endCalendar) <= 0) { 
    // ... calculations 
    beginCalendar.add(Calendar.DATE, 1); 
} 
+0

宿題に+1を付けました – Raedwald

+0

申し訳ありませんが、宿題はありません。私はこの「Wed Jan 05 00:00:00 CET 2011」をDateオブジェクトにどのように置くことができるのか分かりません。 – Tim

+0

よろしくお願いします。 – Codemwnci

1

Calendarオブジェクトを作成し、開始日でそれを設定できます。終了日になるまで、一度に1日追加して印刷してください。

関連する問題