如何获取特定日期是星期几?

时间:2019-05-08 16:57:20

标签: python

我需要获取有关某些日期的一些信息,我不知道该用什么。例如:我将年,月,日(类似于1990、5、15)传递给模块,该模块返回我们经过的日期是星期几。我想要在Python 3中使用。

4 个答案:

答案 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