我想得到任何給定月份的最後一個星期日,並且它的工作到某點上,但是如果星期日是下個月的第一天,它會顯示該日期而不是同一月份上個星期。以下是java一個月的最後一個星期日
public static String getLastSunday(int month, int year) {
Calendar cal = Calendar.getInstance();
cal.set(year, month, 1);
if (leap(year)) {
cal.add(Calendar.DAY_OF_MONTH, -(cal.get(Calendar.DAY_OF_WEEK) - 2));
} else {
cal.add(Calendar.DAY_OF_MONTH, -(cal.get(Calendar.DAY_OF_WEEK)%7 - 1));
}
return cal.getTime().toString().substring(0, 10);
}
調用該函數爲:
getLastSunday(10, 2015);
返回輸出:
Sun Nov 01
哪兒我去錯了嗎?此外,如果是閏年,我不確定是否從-1到-2是正確的,我研究了它,但無法找到任何有用的東西。
你可以使用Java 8或JodaTime嗎? – reto 2015-03-13 07:06:10
如果您無法訪問後面的庫,我建議您獲取下個月第一天的工作日並根據這些計算結果進行計算。 – Bathsheba 2015-03-13 07:08:07
記住'日曆'月是零索引 – MadProgrammer 2015-03-13 07:12:27