有用

常识与文化10 / 10

闰年与日期推算

能被 4 整除且不能被 100 整除,或者能被 400 整除。

  • 学会用时20 分钟
  • 你的收获日期计算不踩二月的坑
  • 用到的频率每月几次
  • 难度入门

01为什么学

没学之前

做日期计算,不确定 2100 年二月有几天。

学会之后

一句话判断闰年,还能推出任意一天是星期几。

  • 写程序、算合同到期日、排工期时不出错
  • 知道为什么 1900 年不是闰年而 2000 年是

02图解

原理图
flowchart TD
  A["给出一个年份"] --> B{"能被 400 整除吗?"}
  B -->|"能"| L["闰年:366 天"]
  B -->|"不能"| C{"能被 100 整除吗?"}
  C -->|"能"| P["平年:365 天"]
  C -->|"不能"| D{"能被 4 整除吗?"}
  D -->|"能"| L
  D -->|"不能"| P
先看 400,再看 100,最后看 4。

03基本单元4 个

  • 平年365 天
  • 闰年366 天,二月 29 天
  • 世纪年整百年份
  • 400 年周期

04怎么用

  1. 闰年能被 4 整除且不能被 100 整除,或者能被 400 整除
  2. 整百年份只有能被 400 整除的才是闰年:1900 不是,2000 是,2100 不是
  3. 公历每 400 年重复一次,一共 97 个闰年,平均年长 365.2425 天
  4. 推算星期先算两日期相隔的天数,再对 7 取余

05速查表

年份是否闰年原因
2024是能被 4 整除,不能被 100 整除
2100否能被 100 整除,但不能被 400 整除
2000是能被 400 整除
1900否能被 100 整除,但不能被 400 整除

06动手试试

这一天的信息

07套用一次

2028 年是闰年(能被 4 整除,不能被 100 整除),2028 年 2 月 29 日是周二。

08常见的坑

  • 只看「能被 4 整除」

    整百年份还要看是否能被 400 整除。

  • 在程序里写死二月 28 天

    用语言自带的日期库,不要自己算。

09自测与练习

先做 10 秒自测,再动手练一下。

2100 年是闰年吗?

10 分钟小练习

判断你出生那年是不是闰年,再用演示器查那一年的某一天是星期几。

看参考答案
把你的生日代入演示器就知道。

+配合着学

常识与文化的全部 10 条