2

偶数週の次の金曜日を取得したいと思います (1 年の週を 1 から 54 まで考慮して)。

たとえば、今日が金曜日で、週が偶数の場合、次の金曜日が必要です。今日が奇数週の木曜日の場合、明日の日付が必要です。

テストの入力/出力は次のとおりです。

 14/09/2012 -> 14/09/2012
 15/09/2012 -> 28/09/2012
 21/09/2012 -> 28/09/2012
 22/09/2012 -> 28/09/2012
 29/09/2012 -> 12/10/2012
 25/12/2012 -> 04/01/2013
 29/12/2012 -> 04/01/2013
4

1 に答える 1

4
Calendar today = Calendar.getInstance();
int dayOfWeek = today.get(Calendar.DAY_OF_WEEK);
int daysUntilNextFriday = Calendar.FRIDAY - dayOfWeek;
if(daysUntilNextFriday < 0){
    daysUntilNextFriday = daysUntilNextFriday + 7;
}
Calendar nextFriday = (Calendar)today.clone();
nextFriday.add(Calendar.DAY_OF_WEEK, daysUntilNextFriday);
if(nextFriday.get(Calendar.WEEK_OF_YEAR) % 2 == 0){
    nextFriday.add(Calendar.DAY_OF_WEEK, 7);
}
System.out.println(new SimpleDateFormat("dd/MM/yyyy").format(nextFriday.getTime()));
于 2012-09-19T17:59:39.797 に答える