代码如下,请查看:
#include <stdio.h>
//判断是否为闰年
int IsLeepYear(int year)
{
if( ((0 == year%4)&&(0 != year%100)) ||(0 == year %400) )
return 1;
else return 0;
}
//计算为星期几的函数
void CountWeekday(int firstWeekDay, int year, int month, int day)
{
int monthDays[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 31};
int sum = 0, i, res;
if(IsLeepYear(year))
monthDays[2] = 29;
for(i = 0; i < month-1; i++)
sum += monthDays[i];
sum += day;
--sum;
res = sum % 7 + firstWeekDay;
printf("该日期为星期:%d\n", res);
}
int main()
{
int firstWeekDay, year, month, day;
printf("请输入元旦星期几, 年份, 月份, 日,以空格间隔输入:\n");
scanf("%d %d %d %d", &firstWeekDay, &year, &month, &day);
CountWeekday(firstWeekDay, year, month, day);
return 0;
}
追问为什么要--sum?
追答因为计算的时候,本身的那天也算一天,如果你不减掉,那就多算了一天,能理解么?你试下代几个小点的数字试算一下,就知道啦~~~
本回答被提问者和网友采纳