当我们想知道当前日期是星期几的时候,可以用到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

持续更新...

 

 

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐