日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算某年母亲节是哪一天

發布時間:2023/12/18 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算某年母亲节是哪一天 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

母親節


題目描述:

每年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整除 的年份是閏年。
  • ( 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 。
  • 如有錯誤請指出 謝謝

    總結

    以上是生活随笔為你收集整理的计算某年母亲节是哪一天的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。