這里有些不懂
有些不懂得地方 ? ?ca.set(Calendar.DAY_OF_MONTH, 1);int prevDays = ca.get(Calendar.DAY_OF_WEEK) - 1; ? ? ? ?ca.add(Calendar.DAY_OF_MONTH, -prevDays);是什么意思呢?
有些不懂得地方 ? ?ca.set(Calendar.DAY_OF_MONTH, 1);int prevDays = ca.get(Calendar.DAY_OF_WEEK) - 1; ? ? ? ?ca.add(Calendar.DAY_OF_MONTH, -prevDays);是什么意思呢?
2017-12-29
舉報(bào)
2018-01-03
?ca.set(Calendar.DAY_OF_MONTH, 1);是將日期設(shè)置到當(dāng)月的第一天
int prevDays = ca.get(Calendar.DAY_OF_WEEK) - 1;獲得的是數(shù)字(星期幾 - 1),日歷是從星期日為起始展示的,而當(dāng)月的第一天不一定就是星期日,前面也許還有幾天,這就需要吧要展示的起始日期向前挪動(dòng)。
對于ca.get(Calendar.DAY_OF_WEEK),獲取的值情況如下:
SUN(1)? ? MON(2)? ? TUE(3)? ? WED(4)? ? THU(5)? ? FRI(6)? ? SAT(7)? ??
可以看到prevDays恰好為起始日期需要向前挪動(dòng)的值。
?然后使用ca.add(Calendar.DAY_OF_MONTH, -prevDays);即可將展示的其實(shí)日期設(shè)置為正確的數(shù)值