我需要获取有关某些日期的一些信息,我不知道该用什么。例如:我将年,月,日(类似于1990、5、15)传递给模块,该模块返回我们经过的日期是星期几。我想要在Python 3中使用。
答案 0 :(得分:2)
如果您正在使用datetime.date
对象,则可以使用weekday()
函数。如果要传递日期,月份和年份,则转换为模块内部的日期对象应该很简单。
https://docs.python.org/3.7/library/datetime.html#datetime.date.weekday
数字表示形式
示例功能
import datetime
def weekday_from_date(day, month, year):
return datetime.date(day=day, month=month, year=year).weekday()
用法示例:
>>> weekday_from_date(day=1, month=1, year=1995)
6
字符串表示形式
结合calendar
模块和day_name
数组,您还可以轻松地将其显示为字符串。
https://docs.python.org/3.7/library/calendar.html#calendar.day_name
示例功能
import datetime
import calendar
def weekday_from_date(day, month, year):
return calendar.day_name[
datetime.date(day=day, month=month, year=year).weekday()
]
用法示例:
>>> weekday_from_date(day=1, month=1, year=1995)
'Sunday'
单元测试
使用pytest
编写一系列超快速单元测试应该很容易证明它的正确性。您可以根据需要添加到此套件中。
import pytest
@pytest.mark.parametrize(
['day', 'month', 'year', 'expected_weekday'],
[
(1, 1, 1995, 6),
(2, 1, 1995, 0),
(3, 1, 1995, 1),
(6, 6, 1999, 6)
]
)
def test_weekday_from_date(day, month, year, expected_weekday):
assert weekday_from_date(day, month, year) == expected_weekday
答案 1 :(得分:1)
您可以使用weekday()
import datetime
week = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']
week[datetime.datetime(1990,5,15).weekday()]
您会得到:
'Tuesday'
答案 2 :(得分:0)
您可以使用weekday()文档。您只需要导入datetime。
答案 3 :(得分:0)
您可以使用日期时间模块
from datetime import datetime
date_string = '1990, 5, 15'
date = datetime.strptime(date_string, "%Y, %m, %d")
date.weekday()
1