欢迎访问宙启技术站
智能推送

使用weekday()函数编写的Python程序,可以统计一周中每天的工作时长。

发布时间:2024-01-09 00:31:13

使用weekday()函数编写的Python程序可以统计一周中每天的工作时长。weekday()函数是Python内置的日期函数,可以返回指定日期的星期几,星期一为0,星期二为1,以此类推。

下面是一个使用weekday()函数编写的Python程序示例,用于统计一周中每天的工作时长:

import datetime

# 定义一个字典,用于存储每天的工作时长
work_hours = {
    0: 0,  # 星期一
    1: 0,  # 星期二
    2: 0,  # 星期三
    3: 0,  # 星期四
    4: 0,  # 星期五
    5: 0,  # 星期六
    6: 0   # 星期日
}

# 定义一个列表,用于存储每天的上班时刻
start_times = [
    datetime.time(8, 0),   # 星期一上班时间
    datetime.time(8, 30),  # 星期二上班时间
    datetime.time(9, 0),   # 星期三上班时间
    datetime.time(8, 15),  # 星期四上班时间
    datetime.time(8, 45),  # 星期五上班时间
    datetime.time(9, 30),  # 星期六上班时间
    datetime.time(9, 0)    # 星期日上班时间
]

# 定义一个列表,用于存储每天的下班时刻
end_times = [
    datetime.time(17, 0),  # 星期一下班时间
    datetime.time(17, 30), # 星期二下班时间
    datetime.time(18, 0),  # 星期三下班时间
    datetime.time(17, 15), # 星期四下班时间
    datetime.time(17, 45), # 星期五下班时间
    datetime.time(18, 30), # 星期六下班时间
    datetime.time(18, 0)   # 星期日下班时间
]

# 获取当前日期
today = datetime.date.today()

# 循环遍历一周中的每一天
for i in range(7):
    # 获取当前日期加上i天的日期
    date = today + datetime.timedelta(days=i)
    
    # 获取当前日期对应的星期几
    day_of_week = date.weekday()
    
    # 获取当前日期对应的上班和下班时刻
    start_time = start_times[day_of_week]
    end_time = end_times[day_of_week]
    
    # 计算工作时长
    work_duration = datetime.datetime.combine(date, end_time) - datetime.datetime.combine(date, start_time)
    
    # 将工作时长转换为小时
    work_hours[day_of_week] = work_duration.total_seconds() / 3600

# 打印每天的工作时长
for day_of_week, work_hour in work_hours.items():
    print(f"星期{day_of_week+1}的工作时长为:{work_hour}小时")

上述程序首先定义了一个字典work_hours,用于存储每天的工作时长,以及两个列表start_timesend_times,用于存储每天的上班和下班时刻。

然后,程序通过循环遍历一周中的每一天,获取当前日期对应的星期几。根据星期几,程序从start_timesend_times中获取对应的上班和下班时刻。

接下来,程序计算工作时长,并将工作时长转换为小时,存储在work_hours字典中。

最后,程序打印每天的工作时长。

使用上述程序可以方便地统计一周中每天的工作时长。可以根据实际情况修改start_timesend_times列表中的时刻,以适应不同的工作时间安排。