如何计算两个日期之间的总时数。在这里,我必须选择开始日期和结束日期。一名雇员每天工作8小时。我计算了这两个日期之间的总时数。例如,如果我从: 11/21/2022和日期到:11/22/2022选择两个日期。这两个日期总共是16小时。而日期需要计算没有假期,我怎么能这样做。请帮帮我。在这里,我想排除假期之间的总days.please帮助我
@api.depends("start_date", "date_deadline")
def _compute_hours(self):
if self.start_date and self.date_deadline:
t1 = datetime.strptime(str(self.start_date), '%Y-%m-%d')
print(t1)
t2 = datetime.strptime(str(self.date_deadline), '%Y-%m-%d')
print('=================================T2')
print(t2)
t3 = t2 - t1
# count = sum(1 for day in t3 if day.weekday() < 5)
# print(count)
print('=================================T3')
print(t3)
print('=================================')
seconds = t3.total_seconds() / 3
diff_in_hours = seconds / 3600
print('Difference between two datetimes in hours:')
print(diff_in_hours)
self.total_hours = diff_in_hours
我正试图把假期排除在总天数之外。
发布于 2022-11-23 02:25:49
您可以简单地使用“工作日”函数来查找该日的工作日。然后把它和假期做比较。
In [1]: from datetime import date, timedelta
...:
...: start_date = date(2019, 1, 1)
...: end_date = date(2020, 1, 1)
...: delta = timedelta(days=1)
...: count = 0
...: while start_date <= end_date:
...: print(start_date.strftime("%Y-%m-%d"))
...: start_date += delta
...: if start_date.weekday() in [5,6]: # 5 is friday, 6 is sat
...: print('holiday')
...: count += 1
...: print("total holidays", count)
现在你有节假日计数,所以你可以减去它。
i.e
假期共计104
total_hours - (count * 8) # count is number, 8 is working hours
https://stackoverflow.com/questions/74545035
复制相似问题