MySQL查询不同年份母亲节_计算某年母亲节是哪一天_晴空呐的博客-CSDN博客

原文作者:晴空呐

原文标题:计算某年母亲节是哪一天

发布时间:2021-01-28 14:22:34

母亲节

题目描述:

每年5月份的第二个星期日定为母亲节。那有可能每年都是不同的日子,作为程序员的你能不能计算一下y年的母亲节是哪一天吗?(1900~2100)

提示:1900年母亲节是5月13日

输入格式:

每组数据只输入一个正整数表示年。

输出格式:

对应每组输入输出该年的母亲节为哪一天。

输入样例:

2020

2021

输出样例:

5 10

5 9

代码样例:

#include

int main()

{

int year;

while( scanf("%d", &year) != EOF ){//输入年份

int count=0, day=0, res=0;

//定义(每次循环开始时清零)

for(int i=1900; i<=year; i++)

if((i%4==0&&i%100!=0)||i%400==0) count += 1;

//判断闰年(并记录从1900年到当年经历过的闰年年数)方法见注释1

day = ((( year-count-1899 )*365 + count*366 ) -31-30-31-31-30-31-30-31 ) %7;

//计算当年五月一日是周几(用总年份减去五月及五月后的天数)详见注释2

res = 14-day;

//周一对应14号,周二对应十三号 详见注释3

printf("5 %d\n", res);//输出

}

}

无注释纯净版

#include

int main()

{

int year;

while( scanf("%d", &year) != EOF )

{

int count=0, day=0;

for(int i=1900; i<=year; i++)

if((i%4==0&&i%100!=0)||i%400==0) count += 1;

day = ((( year-count-1899 )*365 + count*366 ) -245 ) %7;

printf("5 %d\n", 14-day);

}

}

注释:

判断闰年

能被400整除 或 能被4整除,并且不能被100整除 的年份是闰年。

( i%4==0&&i%100!=0 ) || i%400==0

判断第五月第一天是周几

已知1900年五月第一天为周一,将自1900年一月一日起总天数除以7求余数,可得day=0对应为周一,day=1对应为周二 以此类推…

最终日期

找规律可知母亲节日期的范围在5月8日-5月14日的某一天中

if( 5月1日是星期 1 ) 母亲节是5月14日 //间隔13天

else if( 5月1日是星期 2 ) 母亲节是5月13日 //间隔12天

else if( 5月1日是星期 3 ) 母亲节是5月12日 //间隔11天

else if( 5月1日是星期 4 ) 母亲节是5月11日 //间隔10天

else if( 5月1日是星期 5 ) 母亲节是5月10日 //间隔 9天

else if( 5月1日是星期 6 ) 母亲节是5月 9日 //间隔 8天

else if( 5月1日是星期 7 ) 母亲节是5月 8日 //间隔 7天

找规律可简化为 14-day 。

如有错误请指出 谢谢

Post Views:

3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值