setFirstDayOfWeek的方法意思只对WEEK_OF_MONTH 与WEEK_OF_YEAR 有作用.
WEEK_OF_MONTH :当前Calendar日期对象是当前月的第几周.
WEEK_OF_YEAR :当前Calendar 日期对象是当前年的第几周.
程序是2009年1月31号为例子的.打印出当星期的第一天(FirstDayOfWeek)是星期天-星期六,年或月第一星期最少天数(MinimalDaysInFirstWeek)是1-7的所有组合的结果,也就是49个.
当setFirstDayOfWeek(1),星期第一天是星期天时.
1号前面的天数不算在第一周里面,如果是从星期天开始的,那么星期的最后一天是星期六.第一周只有3天.
第二周4号到10号.
第三周11号到17号.
第四周18号到24号.
第五周为25到31号.
如果设置setMinimalDaysInFirstWeek ()为1-3,那么2009年1月31号是这第月的第五周.
如果设置setMinimalDaysInFirstWeek ()为4-7,那么2009年1月31号是这第月的第四周,因为第一周不满4天,那就更加不满七天了.
相信大家都明白setFirstDayOfWeek方法的作用了吧.按照这样的算法,一个月可以算出6周来.比如一个月的1号为星期5,那么31号为星期日.setFirstDayOfWeek()为1,也就是一周从星期天开始,setMinimalDaysInFirstWeek 为1,也是就一天也算是1周.这样一个月六周就出来了.
public static void main(String[] args) {
Calendar cale = new GregorianCalendar(2020, 0, 4);
System.out.println(cale.getTime().toLocaleString());