用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);
}