Python中datetime对象之间的业务时间差异

时间:2015-10-22 18:01:48

标签: python datetime python-datetime date-difference

如何在Python中找到两个日期时间对象之间的业务时间差异?

营业时间可以是9-17

我也想考虑假期。我有一个函数is_holiday(date),它接受​​一个日期对象。

2 个答案:

答案 0 :(得分:0)

File.AppendAllText(newStringVariable  + System.Environment.NewLine);

我们确定您可以弄清楚如何实施def buisiness_time_between(datetime1, datetime2): return business_time_after(datetime1) + (business_time_per_day * days_between(datetime1,datetime2)) + business_time_before(datetime2) business_time_afterbusiness_time_beforebusiness_time_per_day

答案 1 :(得分:0)

我真的没有找到这个问题的简单pythonic答案。

businesstime建议的包J.F. Sebastian做了我想要的,但我认为可以优化和简化算法。 例如,如果我们更改当天的模型,我们可以使用标准的python日期时间操作。

我试着更清楚:如果我们的工作日是9-17,我们可以说我们的日子是8小时而不是24小时。因此,9:00-> 0:00和17:00-> 08:00。现在我们要做的是创建一个以这种方式转换新模型中实时的函数:

  • 如果时间低于我们的开始时间(09:00),我们不关心它,我们将其转换为00:00
  • 如果是营业时间我们转换减去开始时间,例如13:37变为04:37
  • 如果时间大于停止时间(17:00),我们不关心它,我们将其转换为08:00

在此转换之后,所有计算都可以使用python datetime包轻松完成,就像使用普通日期时一样。

还要感谢user2085282的回答,您可以在回购django-business-time中找到这个概念。

通过模型转换,我发现非常容易添加其他功能:午休时间

事实上,如果你有一个12-13的午休时间,你可以在新的一天模型中将所有时间间隔内的地图映射到12. 但是要注意转换后的时间也是13考虑一个小时的午休时间。

很抱歉,我开发的只是一个Django应用程序而不是Python包。但就目前而言,它对我有用。对不起我的代码,我是新手:)

PS:完整的文档即将推出!