#include<stdio.h>
void main()
{
//已知1990年1月1号星期1.求出输入的年月日是星期几
int year,month,day;//年月日
int i,sum=0,num,leap,week;
printf("请输入年月日\n");
scanf("%d%d%d",&year,&month,&day);
for(i=1990;i<=year;i++)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
num=366,leap=1;
}
else
{
num=365,leap=0;
}
switch(month-1)
{
case 11:
sum+=30;
case 10:
sum+=31;
case 9:
sum+=30;
case 8:
sum+=31;
case 7:
sum+=31;
case 6:
sum+=30;
case 5:
sum+=31;
case 4:
sum+=30;
case 3:
sum+=31;
case 2:
sum+=28+leap;
case 1:
sum+=31;
}
}
sum+=day;//求出总和
printf("总天数为%d天\n",sum);
week=sum%7;//求出天数
if(week!=0)
printf("%d年%d月%d天是星期%d\n",year,month,day,week);
else
printf("%d年%d月%d日是星期天\n",year,month,day);
}
如果是求1990年的话就可以计算出来
但是如果是1991年的话 就总天数为1天了 前提是90年的365天没有加上 ,问题出在num=365 num=366 这里 平年和闰年的天数没有相加
因为我的程序矛盾 如果for(i=1990;i<=year;i++) 如果i<输入的年份 那么当i输入为1990就不会循环 如果是等于的话 才会计算 就是总天数相加出现错误 但是不知道如何改