已知公元1年1月1日是星期一,计算输入的年月日是星期几?(用C语言编写)

2024-11-26 08:34:11
推荐回答(1个)
回答1:

我只是刚学C语言,下面的程序仅供参考,上面的结果有问题。
int n=0; /*定义外部变量n*/
int year(int x)
{int i,y=0;
for(i=1;i<=x;i++)
{if(i%4==0&&i%100!=0||i%400==0)
{y++;
n=1;
}
else n=0;
}
return(y); /*y是计算出其中有多少个闰年,n是算出最后一年是不是闰年*/
}
int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int sum_day(int y,int y1,int m,int d)
{int i,day=0;
for(i=1;i day+=day_tab[i];
day=day+d-1+(y1-1)*2+y; /*减1是减去了1月1日那一天,乘2是因为365除7余2*/
if(n==1&&m<3)
day--;
return(day);
}
#include
main()
{int year1,month1,day1,y,day,s;
printf("year/month/day:");
scanf("%d/%d/%d",&year1,&month1,&day1);
y=year(year1);
day=sum_day(y,year1,month1,day1);
s=day%7+1;
printf("%d/%d/%d=%d\n",year1,month1,day1,s);
getchar(); /*两个getchar是为了运行后可看到结果*/
getchar();
}