【日期】再算星期
再次给出任意一个年月日(年>1900),现在我们不能只是直接计算,要先判断给出的日期是否合法,对于非法的日期要给出错误提示信息,合法的日期要再计算是星期几。
输入:
年 月 日
输出:
0~6。星期日用 0 表示,星期一用 1 表示,星期二用 2 表示…星期六用 6 表示。
假设年份大于1900。先想一想:我们现在只会使用 if 语句,该如何建立数学模型?
因为有根据日期求星期的基础,这里不再提供流程图和思路
代码
#include <stdio.h>
int a[15]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main(){
int y,m,d;
scanf("%d %d %d",&y,&m,&d);
if(m>12||m<1)
{
printf("month is error.\n");
return 0;
}
if(y%4==0&&y%100!=0||y%400==0) a[2]=29;
if(d>a[m]||d<1)
{
printf("day is error.\n");
return 0;
}
int ans=d,i;
for(i=1;i<=m-1;i++){
ans+=a[i];
}
int s,r;
s=y-1+(y-1)/4-(y-1)/100+(y-1)/400+ans;
printf("%d\n",s%7);
return 0;
}