给定一个年份,判断是否为闰年
输入:整数y表示当前的年份
输出:若给定年份是闰年输出yes,否则输出no.
输入:
2022
输出:
no
输入:
2016
输出:
yes
闰年判断方法:
1.二月最后一天为二十九日的年份是闰年
2.普通年能被4整除不能被100整除的是闰年;世纪年能被400整除的是闰年
日期时间(datetime)库:python中操作时间和日期。
datetime标准库的四个类:
datetime.date?:只有年,月,日
datetime.time :没有年,月,日;只有小时,分钟,秒
datetime.datetime:年,月,日,小时,分钟,秒
datetime.timedelta:对上面三种类型运算
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日
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微秒
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
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小时
法一:
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
?