当我们想知道当前日期是星期几的时候,可以用到Python的time模块,从时间元组中获取我们想要的数据;
时间元组:(Python用一个元组装起来的9组数字处理时间的函数)
time.struct_time(tm_year=2022, tm_mon=4, tm_mday=9, tm_hour=13, tm_min=55, tm_sec=1,
tm_wday=5, tm_yday=99, tm_isdst=0)
"""
序号 函数名 描述
0 tm_year 年份
1 tm_mon 月份
2 tm_mday 日
3 tm_hour 时
4 tm_min 分
5 tm_sec 秒
6 tm_wday 星期(0-6)
7 tm_yday 这一年的第几天(1-366)
8 tm_isdst -1, 0, 1, -1是决定是否为夏令时的旗帜
"""
获取当前日期为星期几:
import time
local_time = time.localtime(time.time()) # 获取当前时间的时间元组
# time.struct_time(tm_year=2022, tm_mon=4, tm_mday=9, tm_hour=13, tm_min=48, tm_sec=23, tm_wday=5, tm_yday=99, tm_isdst=0)
week_index = local_time.tm_wday # 获取时间元组内的tm_wday值
print(week_index) # 5表示星期六
5
因为输出的是数字0-6,我们需要的是中文的星期名称,添加配置列表
import time
local_time = time.localtime(time.time()) # 获取当前时间的时间元组
# time.struct_time(tm_year=2022, tm_mon=4, tm_mday=9, tm_hour=13, tm_min=48, tm_sec=23, tm_wday=5, tm_yday=99, tm_isdst=0)
week_index = local_time.tm_wday # 获取时间元组内的tm_wday值
# 配置名称列表
week_list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
print(week_list[week_index])
星期六
将代码封装成一个函数:
import time
def get_weekdays():
"""
:return: week_name_cn
"""
week_list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
local_time = time.localtime(time.time()) # 获取当前时间的时间元组
# time.struct_time(tm_year=2022, tm_mon=4, tm_mday=9, tm_hour=13, tm_min=48, tm_sec=23, tm_wday=5, tm_yday=99, tm_isdst=0)
week_index = local_time.tm_wday # 获取时间元组内的tm_wday值
week = week_list[week_index]
return week
print(get_weekdays())
星期六
优化(一):如果需要指定某个日期,获取星期,那代码中就得传入参数了
import time
def get_weekdays(date_str):
"""
:param date_str:
:return: week_neme_cn
"""
week_list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
week_index = time.strptime(date_str, '%Y-%m-%d').tm_wday # 获取指定时间的星期
week = week_list[week_index]
return week
date_test = "2022-04-09"
print(get_weekdays(date_test))
星期六
优化(二):定义一个类,能获取当前日期的星期,以及当前日期是这一年的第几天,以及指定日期的星期,指定日期是这一年的第几天
@property是为了让函数能够像属性一样被调用
import time
class FuncDate(object):
"""
参数date_str默认为None,如果不传参,则计算当前日期
"""
def __init__(self,date_str=None):
self.date_str = date_str
self.week_list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
@property
def get_weeks(self):
"""
:return: 该日期的星期
"""
if self.date_str:
week_index = time.strptime(date_str, '%Y-%m-%d').tm_wday
else:
week_index = time.localtime(time.time()).tm_wday
return self.week_list[week_index]
@property
def get_days(self):
"""
:return: 该日期在这一年是第几天
"""
if self.date_str:
day_num = time.strptime(date_str, '%Y-%m-%d').tm_yday
else:
day_num = time.localtime(time.time()).tm_yday
return day_num
# 实例化
func = FuncDate() # 不传参
print(func.get_weeks) # 获取当前星期
星期六
print(func.get_days) # 获取当前天数
99
func2 = FuncDate("2022-04-01") # 传参2022-04-01
print(func2.get_weeks) # 获取当前星期
星期五
print(func2.get_days) # 获取当前天数
91
持续更新...