You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询Python代码中currentYear%4/%100/%400的含义及闰年判断逻辑

闰年判断逻辑:%4、%100、%400到底在干嘛?

首先得明确%这个运算符——它是取余运算符,用来计算一个数除以另一个数后剩下的余数。比如currentYear % 4 == 0,意思就是currentYear除以4之后余数为0,换句话说这个年份能被4整除。

接下来直接说闰年的判断规则,这就是代码里三个取余条件的核心原因:

  • 普通闰年:年份能被4整除,但不能被100整除
  • 世纪闰年:年份能被400整除(哪怕它能被100整除)

对应你贴的代码里的条件:

currentYear = int(input('Enter the year: '))
month = int(input('Enter the month: '))
if ((currentYear % 4) == 0 and (currentYear % 100) != 0 or (currentYear % 400) ==0):
       print('Leap Year')

这个条件其实是把两种闰年情况用or连接起来:

  1. (currentYear % 4 == 0 and currentYear % 100 != 0):满足普通闰年的判定要求
  2. currentYear % 400 == 0:满足世纪闰年的判定要求

举几个实际例子你就彻底明白了:

  • 2024:2024%4=0,2024%100=24≠0 → 符合第一个条件,是闰年
  • 1900:1900%4=0,但1900%100=0,同时1900%400=300≠0 → 两个条件都不满足,不是闰年
  • 2000:2000%400=0 → 符合第二个条件,是闰年

为啥要搞这么复杂?因为地球绕太阳一圈的实际时间约为365.2422天,不是刚好365天。如果只按4年一闰,每400年就会多算3天左右,加入能被100整除不闰、能被400整除再闰的规则,就是为了修正这个时间误差。

内容的提问来源于stack exchange,提问作者VincentOfTheHighlands

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 19:25:30