小编mer*_*hay的帖子

两个日期之间的时间(周末除外)

我需要一个函数来计算两个日期之间(周末除外)之间的时间(以秒为单位),其工作方式如下:

# friday 9 PM
start_date = datetime.datetime(2015, 9, 18, 21, 0, 0)

# monday 3 AM
end_date = datetime.datetime(2015, 9, 21, 3, 0, 0)

# should return 6 hours
time = time_between_two_dates_except_weekends(start_date, end_date)
Run Code Online (Sandbox Code Playgroud)

我实现了自己的功能,这是可行的,但它似乎不必要地庞大和复杂。我认为它可以更简单。

import datetime

from dateutil.relativedelta import relativedelta
from dateutil.rrule import DAILY, rrule

def time_between_two_dates_except_weekends(start_date, end_date):

    WEEKEND_DAYS = [5, 6]

    result = datetime.timedelta()

    if all([start_date.year == end_date.year, start_date.month == end_date.month, start_date.day == end_date.day]):
         result += datetime.timedelta(seconds = (end_date-start_date).seconds )
         return result

    day_after_start_date = start_date + relativedelta(days=1)
    day_after_start_date …
Run Code Online (Sandbox Code Playgroud)

python datetime

4
推荐指数
1
解决办法
1872
查看次数

标签 统计

datetime ×1

python ×1