计算星期几

由输入1980年以后的任意一个日期后,计算机能打印出该日期是星期几.
日期肯定合法,绝不会出现类似-23年13月52日的情况

已知1980年1月1日是星期二。


#include <stdio.h>
int main()
{
int y=0,m=0,d=0,i=0,s=0,z=0,er=0;
scanf("%d %d %d",&y,&m,&d);
for(i=1980;i<y;i++)
{
if((i%400==0)||((i%4==0)&&(i%100!=0)))
s+=366;
else
s+=365;

}
if((y%400==0)||((y%4==0)&&(y%100!=0)))
er=29;
else
er=28;
switch(m)
{
case 1:z=d;break;
case 2:z=31+d;break;
case 3:z=31+er+d;break;
case 4:z=31+er+31+d;break;
case 5:z=31+er+31+30+d;break;
case 6:z=31+er+31+30+31+d;break;
case 7:z=31+er+31+30+31+30+d;break;
case 8:z=31+er+31+30+31+30+31+d;break;
case 9:z=31+er+31+30+31+30+31+31+d;break;
case 10:z=31+er+31+30+31+30+31+31+30+d;break;
case 11:z=31+er+31+30+31+30+31+31+30+31+d;break;
case 12:z=31+er+31+30+31+30+31+31+30+31+30+d;break;

}
s+=z;
printf("%d\n",s%7+1);
return 0;
}
/*
var y,m,d,i,s,z,er:longint;
begin
readln(y,m,d);
for i:=1980 to y-1 do
if (i mod 4=0) and (i mod 100<>0) or (i mod 400=0) then s:=s+366
                                                    else s:=s+365;
if (y mod 4=0) and (y mod 100<>0) or (y mod 400=0) then er:=29
                                                   else er:=28;
case m of
 1:z:=d;
 2:z:=31+d;
 3:z:=er+31+d;
 4:z:=er+62+d;
 5:z:=er+92+d;
 6:z:=er+123+d;
 7:z:=er+153+d;
 8:z:=er+184+d;
 9:z:=er+215+d;
 10:z:=er+245+d;
 11:z:=er+276+d;
 12:z:=er+306+d;
end;
s:=s+z;
writeln(s mod 7+1);
end.
*/

1083:计算星期几的问题可以通过对给定的数进行取余运算来得到答案。根据引用[1]中的说明,一周有七天,超过七天后就会重复循环。所以我们只需要对给定的数取余即可得到星期几。根据引用中的代码示例,我们可以使用switch语句将取余结果映射到对应的星期几。根据引用中的说明,Monday是星期一,Tuesday是星期二,Wednesday是星期三,Thursday是星期四,Friday是星期五,Saturday是星期六,Sunday是星期日。所以我们可以根据取余结果,返回相应的星期几。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [信息学奥赛一本通:1083:计算星期几](https://blog.csdn.net/ffsdfg/article/details/127314580)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【1083】计算星期几](https://blog.csdn.net/LWX3289765163/article/details/121253899)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姚希瑶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值