当我们需要计算某个日期是今年的第几天时,可以使用 Python 中的三种方法来实现。
方法1:datetime.date.timetuple
import datetime
def day_of_year(date):
"""
计算指定日期是当年的第几天
:param date: 日期,格式为 'YYYY-MM-DD'
:return: 当年的第几天,int类型
"""
day_number = datetime.datetime.strptime(date, '%Y-%m-%d').timetuple().tm_yday
return day_number
使用示例:
print(day_of_year('2022-03-21')) # 输出 80
print(day_of_year('2022-12-31')) # 输出 365
方法2:datetime.date.toordinal
import datetime
def day_of_year(date):
"""
计算指定日期是当年的第几天
:param date: 日期,格式为 'YYYY-MM-DD'
:return: 当年的第几天,int类型
"""
day_number = datetime.datetime.strptime(date, '%Y-%m-%d').toordinal() - datetime.datetime.strptime(date[:4]+'-01-01', '%Y-%m-%d').toordinal() + 1
return day_number
使用示例:
print(day_of_year('2022-03-21')) # 输出 80
print(day_of_year('2022-12-31')) # 输出 365
方法3:calendar模块
import calendar
def day_of_year(date):
"""
计算指定日期是当年的第几天
:param date: 日期,格式为 'YYYY-MM-DD'
:return: 当年的第几天,int类型
"""
year = int(date[:4])
month = int(date[5:7])
day = int(date[8:])
day_number = sum(calendar.monthrange(year, i)[1] for i in range(1, month)) + day
return day_number
使用示例:
print(day_of_year('2022-03-21')) # 输出 80
print(day_of_year('2022-12-31')) # 输出 365
以上三种方法都可以计算指定日期是今年的第几天。其中,方法1和方法2使用python自带的datetime模块,方法3使用calendar模块。如果使用多次,可根据具体情况选择最适合的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python计算指定日期是今年的第几天(三种方法) - Python技术站