用C语言写万年历时计算星期几的公式是什么?

c语言根据日期判断星期几,并使用Kim Larson的计算公式:

w =(d+2 * m+3 *(m+1)/5+y+y/4-y/100+y/400)

在公式中,d代表日期中的天数,m代表月数,y代表年数。

注意:

将1月和2月视为上一年的第13个月和第14个月。例如:如果是2004-1-10,则转换为:2003-13-10,并代入公式进行计算。

以公元元年为参考,公元1 1元年为星期一。

参考代码:

#包含?& ltstdio.h & gt

虚空?calculate weekday(int?y,int?m?int?d)

{

if(m & lt;=2)?{

m+= 12;

y-;

}

int?iWeek =(d+2 * m+3 *(m+1)/5+y+y/4-y/100+y/400)% 7;

开关(iWeek)

{

案子?0:?Printf(“星期一\ n“);?打破;

案子?1:?printf(“Tuesday \ n“);?打破;

案子?2:?Printf(“星期三\ n“);?打破;

案子?3:?Printf(“星期四\ n“);?打破;

案子?4:?printf(“Friday \ n“);?打破;

案子?5:?Printf(“星期六\ n“);?打破;

案子?6:?printf(“Sunday \ n“);?打破;

}

}?

虚空?主()

{

计算工作日(2015,10,1);

}