蓝桥杯time模块常用操作

2023-12-18 23:38:08
#导入time模块import time
#获取时间戳
start_time = time.time ()
print ( "start_time = ", start_time)
time .sleep ( 3)
end_time = time.time ()
print ( "end_time = ", end_time)#计算运行时间
print("运行时间= { :.0f } ".format(end_time - start_time))
# 获取本地时间
import time

t = time.localtime()  # 返回本地时间,是一个struct_time对象,struct_time对象之间不可以加减
print(t)
print('年份:',t.tm_year)
print('月份:',t.tm_mon)
print('日期:',t.tm_mday)
print('小时:',t.tm_hour)
print('分钟:',t.tm_min)
print('秒:',t.tm_sec)
print('一周的第一日:',t.tm_wday)
print('一年的第几日:',t.tm_yday)

结果:
年份: 2023
月份: 12
日期: 18
小时: 11
分钟: 51
秒: 14
一周的第一日: 0
一年的第几日: 352

格式化日期:

# 获取本地时间
import time

t = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
print(type(t))
print(t)

t=time.strptime(t,'%Y-%m-%d %H:%M:%S')   # 第一个参数就是返回的类型
print(type(t))
print(t)

<class 'str'>
2023-12-18 12:02:27
<class 'time.struct_time'>
time.struct_time(tm_year=2023, tm_mon=12, tm_mday=18, tm_hour=12, tm_min=2, tm_sec=27, tm_wday=0, tm_yday=352, tm_isdst=-1)

datatime模块

datetime模块支持日期和时间的运算,包含下面四种数据:

date:日期

time:时间

datetime:日期时间

timedelta: 时间间隔

date日期类

传递年月日

a = datetime.date(2023, 12, 18)
print(type(a))
print(a)

<class 'datetime.date'>
2023-12-18

日期减法操作( 支持与另一个date比较?)? ?date与date减得到timedelta

a = datetime.date(2023, 12, 18)
b = datetime.date(2023, 11, 9)
print(type(a - b))
print(a - b)

<class 'datetime.timedelta'>
39 days, 0:00:00

time时间类

传递时分秒

a = datetime.time(10, 25, 30)
print(type(a))
print(a)

<class 'datetime.time'>
10:25:30

支持与另一个time判断,time之间不支持进行加减法,需要转换成datetime进行。

datetime日期时间类

定义datetime:传递年、月、日、时、分、秒

a = datetime.datetime(2023, 12, 18, 10, 25, 30)
print(type(a))
print(a)
print(a.date())
print(a.time())

<class 'datetime.datetime'>
2023-12-18 10:25:30
2023-12-18
10:25:30

timedelta类

时间差:表示两个datetime对象之间的间隔。

用days、seconds、microseconds(微秒)三个变量存储时间间隔定义时可以传入: weeks、days、hours、minutes、seconds 、milliseconds(毫秒) 、 microseconds,然后自动转换成上述三个变量datetime与timedelta进行加减得到新的datetime。

datetime之间进行减法.得到timedelta

a = datetime.datetime(2023, 12, 18, 10, 25, 30)
delta = datetime.timedelta(days=100)  # 间隔值
# 计算100天之后的日期
b = a + delta
print(b)
# 计算100天前的日期
b = a - delta
print(b)

# 结果
2024-03-27 10:25:30
2023-09-09 10:25:30
a = datetime.datetime(2023, 12, 18, 10, 25, 30)
b = datetime.datetime(2024, 3, 1, 11, 25, 30)
delta = b - a
print(delta)
# 输出时间差的天数
print(delta.days)
# 输出秒数
print(delta.seconds)
# 统一转换成秒
print(delta.total_seconds())

# 结果
74 days, 1:00:00
74
3600
6397200.0

例题:

计算从1901年1月1日到2000年12月31日存在多少个星期1。

利用date数据类型的weekday方法判断是否为周一利用timedelta不断增加1天

import datetime

start = datetime.date(1901, 1, 1)
end = datetime.date(2000, 12, 31)
ans = 0
while start < end:
    if start.weekday() == 0:
        ans += 1
    start += datetime.timedelta(days=1)
print(ans)

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