蓝桥杯训练-闰年判断(day2)

发布时间:2024年01月23日

一、题目

给定一个年份,判断是否为闰年

输入:整数y表示当前的年份

输出:若给定年份是闰年输出yes,否则输出no.

二、例子

输入:

2022

输出:

no

输入:

2016

输出:

yes

三、解析

闰年判断方法:

1.二月最后一天为二十九日的年份是闰年

2.普通年能被4整除不能被100整除的是闰年;世纪年能被400整除的是闰年

四、涉及的知识点

日期时间(datetime)库:python中操作时间和日期。

datetime标准库的四个类:

datetime.date?:只有年,月,日

datetime.time :没有年,月,日;只有小时,分钟,秒

datetime.datetime:年,月,日,小时,分钟,秒

datetime.timedelta:对上面三种类型运算

  • datetime.date

1.生成当前的年,月,日? :? datetime.date.today()

例:

import datetime
date = datetime.date.today()
print(date,type(date))

运行结果:

2024-01-22 <class 'datetime.date'>

2. 生成自定义日期: datetime.date(年,月,日)

例:

import datetime
date = datetime.date(2023,1,1)
print(date,type(date))

运行结果:

2023-01-01 <class 'datetime.date'>

3.生成对应的年,月,日:print(date.year)

例:

import datetime
date = datetime.date(2023,1,1)
print(date.year)
print(date.month)
print(date.day)

运行结果:

2023
1
1

4.替换日期:print(data.replace())?

例:

import datetime
date = datetime.date(2023,1,1)
print(date.replace(2023,1,2))

运行结果:

2023-01-02

5.从0001-01-01到现在的天数: print(date.toordinal())

?例:

import datetime
date = datetime.date(2023,1,1)
print(date.toordinal())

运行结果:

738521

?6.定义日期格式: print(date.strftime("%Y年%m月%d日"))

例:

import datetime
date = datetime.date(2023,1,1)
print(date.strftime("%Y年%m月%d日"))

运行结果:

2023年01月01日

  • ?datetime.date

1.生成时间: datetime.time(小时,分钟,秒,微秒,时区)

例:

import datetime
time = datetime.time(15,10,45,888888)
print(time)

运行结果:

15:10:45.888888

2.生成对应的小时,分钟,秒:print(time.hour)

例:

import datetime
time = datetime.time(15,10,45,888888)
print(time.hour)
print(time.minute)
print(time.microsecond)

运行结果:

15
10
888888

3.定义时间格式: print(date.strftime("%H时%M分%S秒 %f微秒"))

例:

import datetime
time = datetime.time(15,10,45,888888)
print(time.strftime("%H时%M分%S秒 %f微秒"))

运行结果:

15时10分45秒 888888微秒

  • ?datetime.datetime

1.生成当前的日期时间:? datetime.datetime.today();datetime.datetime.now(tz=None)[时区]??

例:

import datetime
dt = datetime.datetime.today()
print(dt)
dt1 =datetime.datetime.now()
print(dt1)

运行结果:

2024-01-22 19:03:13.270501
2024-01-22 19:03:13.270501?

2.自定义日期时间:datetime.datetime(year,month,day,hour=0,minute=0,second=0,microsecond=0,tzinfo=None)

注:必须值:年,月,日? ? 非必须值:小时,分钟,秒,微秒,时区

例:

import datetime
dt = datetime.datetime(2020,5,14)
print(dt)

运行结果:

2020-05-14 00:00:00

3.生成对应的年,月,日,小时,分钟,秒:print(dt.year)

例:

import datetime
dt = datetime.datetime.today()
print(dt.year)
print(dt.month)
print(dt.day)
print(dt.hour)
print(dt.minute)
print(dt.microsecond)

运行结果:

2024
1
22
19
30
612122
  • datetime.tiemdelta

1.生成时间差:datetime.timedelta(days=10)

例:

import datetime
td = datetime.timedelta(days=10,hours=5)
print(td)
td = datetime.timedelta(days=-5)
print(td)
td = datetime.timedelta(days=-5,hours=-8)
print(td)
td = datetime.timedelta(hours=75)
print(td)
td = datetime.timedelta(weeks=2)
print(td)

运行结果:

10 days, 5:00:00
-5 days, 0:00:00
-6 days, 16:00:00
3 days, 3:00:00
14 days, 0:00:00
2.计算目标日期:

import datetime
dt = datetime.datetime.today()
print("现在是{}".format(dt.strftime('%Y年%m月%d日 %H时%M分%S秒')))
delta = datetime.timedelta(days=10)
target = dt + delta
print("十天后是{}".format(target.strftime('%Y年%m月%d日 %H时%M分%S秒')))

运行结果:

现在是2024年01月22日 21时39分35秒
十天后是2024年02月01日 21时39分35秒

3.计算时间差:

import datetime
dt1 = datetime.datetime.today()
dt2 = datetime.datetime.utcnow()
td = dt1 -dt2
print("我们与utc时间的差是:{:.0f}小时".format(td.seconds/3600))

运行结果:

我们与utc时间的差是:8小时

五、python代码?

法一:

import datetime
year = int(input())
time_delta = datetime.timedelta(days=1)
dt = datetime.date(year=year,month=3,day=1)
res = dt - time_delta
if res.day ==29:
    print('yes')
else:
    print('no')

?运行结果:

2016
yes

2022
no

法二:

years = int(input("请输入查询的年份:"))
if years % 4 == 0 and years % 100 != 0:
    print("yes")
else:
    print("no")

运行结果:

请输入查询的年份:2022
no

?

文章来源:https://blog.csdn.net/2303_77845502/article/details/135744322
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。