int IndexOfFirstDay = c.getFirstDayOfWeek();
-
使用getFirstDayOfWeek()函数,返回值代表**“当前设置的第一天对应的DAY_OF_WEEK”**,DAY_OF_WEEK:周x在目前的周算法中排的顺序值。
-
按照美国算法:周日作为第一天,所以周日的DAY_OF_WEEK对应1,周一对应2;
按照法国算法:周一对应1,周日对应7。 -
如果不使用set特殊设置,第一天默认为算法规定的第一天,返回的值就只会是1,但是我们不知道这个1对应的是周一还是周日
所以,往往会先使用set,来鉴别当前电脑使用的是美国算法还是法国算法如:将第一天设置为周三,返回的DAY_OF_WEEK是4,说明电脑使用的是美国算法,返回3表示使用的是法国算法
-
也可以不加set设置,直接判断星期日的DAY_OF_WEEK是否是1,若是则证明使用的美国算法,否则是法国的算法
在明确了电脑使用的是何种算法后,我们就可以让电脑打印出正确的星期几
if(IndexOfFirstDay==Calendar.SUNDAY)
{
//打印正确星期几之美国算法
if(IndexOfFirstDay-1>0) {
System.out.println(MessageFormat.format("今天是星期{0}",IndexOfFirstDay-1 ));
}
else{
IndexOfFirstDay=7;
System.out.println(MessageFormat.format("今天是星期{0}",IndexOfFirstDay ));
}
}
else {
//打印正确星期几之法国算法
System.out.println(MessageFormat.format("今天是星期{0}",IndexOfFirstDay));
}