前言
如何将数字转换为其相关的星期几?
例如:
def string(hour_of_day, day_of_week, date) :
print(f'{day_of_week} {date} at hour {hour_of_day}')
如何重新编写“day_of_week”部分,print
以便在使用该功能时:
string(12, 1, '2020/02/18')
我怎样才能得到Tuesday 2020/02/18 at hour 12
而不是1 2020/02/18 at hour 12
?
解决思路一
使用字典
daysdict = { 1: 'Monday', 2: 'Tuesday'}
延长了所有的日子
然后使用daysdict[1]
尽管您的第一天似乎是星期二!
可以直接从日期本身获取日期 - 供您查看。
解决思路二
import calendar
day_of_week = 1
calendar.day_name[day_of_week]
## 'Tuesday'
日历模块在 Python 中始终可用(它属于内置标准模块)。
所以字典{0: "Monday", 1: "Tuesday", ...}
已经定义为calendar.day_name
. 所以不需要自己定义。而是键入import calendar
,您可以使用它。
使用datetime
模块直接从日期获取工作日
from datetime import datetime
def date2weekday(date):
return datetime.strptime(date, "%Y/%m/%d").strftime('%A')
def myfunction(hour_of_day, date):
return f"{date2weekday(date)} {date} at hour {hour_of_day}"
myfunction(12, '2020/02/18')
## 'Tuesday 2020/02/18 at hour 12'
解决思路三
可以使用 datetime 对象中的 strftime 方法:
import datetime
print(datetime.datetime(2022, 10, 21).strftime('%A %Y/%m/%d'))
这会给你这个答案:
Friday 2022/10/21
要使其适应问题的解决方案,只需执行以下操作:
from datetime import datetime
def string(hour_of_day, date):
print(f'{date.strftime('%A %Y/%m/%d')} at hour {hour_of_day}')
string(12, datetime(year=2022, month=10, day=21))
这个解决方案的好处是你不需要知道日期的星期几,Python 已经知道了,只要问它即可