今天作业中遇到了一道关于根据具体日期判断星期几和根据年月输出日历的问题。
这应该是一道很经典的问题,恰好一个月前我大学班上的一个同学面试的机试题中就有这样一道题,解法是多种多样,这里我列出我自己认为比较方便的一种方法。
基姆拉尔森 法:
/**法一: 基姆拉尔森 法
*
*/
if ((month == 1) || (month == 2)){
month += 12;
year--;
}
/**求出星期数
*/
//得到星期数-1,具体星期应加1;
int weeken = (day + 2*month + 3*(month + 1)/5 + year + year/4 - year/100 + year/400) % 7;
这样就得出某天的具体星期数了,需要注意的是,此时得出的星期数是正确星期数减一!