计算某年母亲节是哪一天
生活随笔
收集整理的這篇文章主要介紹了
计算某年母亲节是哪一天
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
母親節
題目描述:
每年5月份的第二個星期日定為母親節。那有可能每年都是不同的日子,作為程序員的你能不能計算一下y年的母親節是哪一天嗎?(1900~2100)
提示:1900年母親節是5月13日
輸入格式:
每組數據只輸入一個正整數表示年。
輸出格式:
對應每組輸入輸出該年的母親節為哪一天。
輸入樣例:
2020
2021
輸出樣例:
5 10
5 9
代碼樣例:
#include<stdio.h>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;//計算當年五月一日是周幾(用總年份減去五月及五月后的天數)詳見注釋2res = 14-day;//周一對應14號,周二對應十三號 詳見注釋3printf("5 %d\n", res);//輸出} }無注釋純凈版
#include<stdio.h>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整除 的年份是閏年。
已知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 。
如有錯誤請指出 謝謝
總結
以上是生活随笔為你收集整理的计算某年母亲节是哪一天的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么修改ftp服务器被动端口,ftp服务
- 下一篇: 史上最简单的word文档docx文档解密