#include<stdio.h>
int main(void)
{
int a,b,c,f,i,m,n;
int sum=0;
int s=0;
int d[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int e[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入查询日期(年-月-日,如:2021-4-11):\n");
scanf("%d-%d-%d",&a,&b,&c);
printf("请输入%d年%d月%d日1月1日是星期几(1-7):\n",a,b,c);
for(i=1;i<a;i++)
{
if(i%100==0 && i%400==0 || i%4==0){
sum+=366;
}
else{
sum+=365;
}
}
f=sum%7;
printf("%d\n",f);
if(a%100==0 && a%400==0 || a%4==0){
for(m=0;m<b-1;m++)
{
s+=d[m];
}
s+=c;
n=f+s%7-1;
}
else{
for(m=0;m<b-1;m++){
s+=e[m];
}
s+=c;
n=f+s%7-1;
}
if(n==1){
printf("%d年%d月%d日是星期一\n",a,b,c);}
else if(n==2){
printf("%d年%d月%d日是星期二\n",a,b,c);}
else if(n==3){
printf("%d年%d月%d日是星期三\n",a,b,c);}
else if(n==4){
printf("%d年%d月%d日是星期四\n",a,b,c);}
else if(n==5){
printf("%d年%d月%d日是星期五\n",a,b,c);}
else if(n==6){
printf("%d年%d月%d日是星期六\n",a,b,c);}
else{printf("%d年%d月%d日是星期日\n",a,b,c);}
return 0;
}
- 首先要明确公元0年不存在,公元1年第一天为星期一
- 闰年与平年的区别:闰年366天,二月29天;平年365天,二月29天。
- 先计算这一年一月一日距公元1年1月1日有多少天,用天数取余7,余数 即该年1月1日为周几
- 知道了这一年1月1日为周几,再for循环(期间借用整型数组,因为每个月天数不定)计算出这一天距1月1日为多少天。
- 用天数取余7,即得这一天为星期几
c 循环 确定所输入年-月-日 为星期几
最新推荐文章于 2022-08-12 21:35:49 发布
该程序接收用户输入的年、月、日,判断是否为闰年,然后计算出该日期是一年中第几天,结合一年开始的星期几,推算出该日期是星期几。程序适用于公元1年后的日期查询。
6756

被折叠的 条评论
为什么被折叠?



