我有要求在哪裏需要顯示一個月的完整一週(4-5周)。即如果一個月從星期五(1月1日)開始,它應該仍然在同一周顯示。但就我而言,並不是這樣發生的。由於1月1日從星期五開始,它顯示爲一個單獨的星期。 這裏是我的兩個小提琴: https://jsfiddle.net/0Lxy8097/如何在一個月的表格中顯示完整的星期
https://jsfiddle.net/brbeekbg/
正如你可以在兩個小提琴看到,12月31日是星期四和1月1日是星期五。但是自1月1日是一個單獨的月份,它顯示爲與星期五不同的一週。但我不希望發生這種情況。我希望我的整個一週都能在一張桌子上展示。
這裏是我的後端函數,我正在寫它的邏輯。
public static List<List<MDDate>> getNumberOfWeeks(int year, int month) {
List<List<MDDate>> weekdates = new ArrayList<List<MDDate>>();
List<MDDate> dates = new ArrayList<MDDate>();
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, 1);
dates.add(MDDate.fromDate(c.getTime()));
while (c.get(Calendar.MONTH) == month) {
if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
dates.add(MDDate.fromDate(c.getTime()));
weekdates.add(dates);
} else if (c.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY) {
dates = new ArrayList<MDDate>();
dates.add(MDDate.fromDate(c.getTime()));
}
c.add(Calendar.DAY_OF_MONTH, 1);
}
if (dates.size() < 2) {
c.add(Calendar.DAY_OF_MONTH, -1);
dates.add(MDDate.fromDate(c.getTime()));
weekdates.add(dates);
}
return weekdates;
}
我應該在邏輯中做出什麼改變才能使其正確。我去哪裏了呢?我應該在我的while循環中添加什麼邏輯來顯示整個星期。請幫幫我。
確定您複製了該方法的所有源代碼?因爲你只在上面的代碼中處理星期一和星期日。你週日有'if',星期一有'if if'。其他日子不應該有其他聲明嗎?它不會解決你的問題,它只是幫助我們提供幫助。 – Igorovics