Python函数:获取日期的星期几
发布时间:2023-06-22 21:20:55
在Python编程中,我们经常需要获取日期是星期几,以便进行日历、计算工作日等操作。Python中有多种方式可以实现此功能,包括标准库datetime模块、第三方库dateutil模块以及使用函数来计算星期几。
一、使用datetime模块获取星期几
Python标准库datetime模块提供了date类和datetime类用于处理日期和时间。其中,date类中有一个weekday()方法可以返回日期的星期几,星期一到星期日分别对应0到6。以下是一个示例代码:
import datetime date_str = '2022-08-18' date_obj = datetime.datetime.strptime(date_str, '%Y-%m-%d').date() weekday = date_obj.weekday() print(weekday)
输出结果为:3,表示2022年8月18日是星期四。
二、使用dateutil模块获取星期几
Python第三方库dateutil提供了parser模块,可以将字符串转换为datetime对象,并且能够处理各种格式的日期字符串。以下是一个示例代码:
from dateutil import parser date_str = 'Aug 18, 2022' date_obj = parser.parse(date_str) weekday = date_obj.weekday() print(weekday)
输出结果同样为3,表示2022年8月18日是星期四。
三、使用函数计算星期几
除了使用datetime和dateutil模块,我们可以自己编写函数来计算日期的星期几。下面是一个比较简单的例子,通过计算日期与某个基准日期(如1900年1月1日)的差值来确定星期几:
def get_weekday(date_str):
date_list = date_str.split('-')
year = int(date_list[0])
month = int(date_list[1])
day = int(date_list[2])
days = 0
for i in range(1900, year):
if i % 4 == 0 and i % 100 != 0 or i % 400 == 0:
days += 366
else:
days += 365
for i in range(1, month):
if i in (1, 3, 5, 7, 8, 10, 12):
days += 31
elif i in (4, 6, 9, 11):
days += 30
else:
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
days += 29
else:
days += 28
days += day - 1
return days % 7
# 示例代码
date_str = '2022-08-18'
weekday = get_weekday(date_str)
print(weekday)
输出结果同样为3。
综上所述,Python中获取日期的星期几可以使用标准库datetime模块、第三方库dateutil模块或自己编写的函数进行计算。在实际项目中,根据具体需求和代码复杂度等因素可选择不同的方法实现。
