解析

两种方法来计算:

  • 如果这一年的三月前一天只有29天则为闰年,否则不是非闰年
  • 通过最经典的方法去计算:能被 4 整除的大多是闰年,但能被 100 整除 而不能被 400 整除的年份不是闰年,如 1900 年是平年,2000 年是闰年。

使用datetime模块

import datetime

years = int(input())
time_delta = datetime.timedelta(days=1)  # 参数days指定生成多少天的时间差。
dt = datetime.date(year=years, month=3, day=1)  # 创建3月1号某年的时间对象
res = dt - time_delta  # 两个相减最后得到时间差。

if res.day == 29:  # 如果结果是29天则为闰年
    print("yes")
else:
    print("no")

使用传统整除的方法。

years = int(input())

if years % 400 == 0 or (years % 4 == 0 and years % 100 != 0):
    print("yes")
else:
    print("no")

题目来源:https://www.nowcoder.com/questionTerminal/a7bcbe3cb86f435d9617dfdd20a16714?orderByHotValue=1&commentTags=C++

posted on 2024-02-27 15:23  逢考必过好吗秋梨膏  阅读(3)  评论(0编辑  收藏  举报