如何在我的示例中计算小时:
((完成-开始)-暂停)
表单视图中的格式
start = 02/10/2017 07:55:54
完成时间=2017年10月2日16:50:54
暂停=1小时(默认)
在控制台日期时间中,如下所示: 2017-02-10 07:55:54
需要这个==>结果= 07:55
How in @api.depends('start', 'finish')
def calculate_hours(self):
#发布于 2017-02-10 09:06:23
您可以使用时间增量或相对增量来计算差异。在此之前,您必须转换为datetime对象。以下是我要做的
from openerp import api, fields
# if use relativedelta
from dateutil.relativedelta import relativedelta
@api.depends('start', 'finish')
def calculate_hours(self):
for record in self:
start_dt = fields.Datetime.from_string(record.start)
finish_dt = fields.Datetime.from_string(record.finish)
# using relativedelta
# pause time = 1, you could change to the number you desire.
pause = relativedelta(hours=1)
difference = relativedelta(finish_dt, start_dt) - pause
# from relative delta you could get hours or minutes as you wanted
# hours = difference.hours
# minutes = difference.minutes
# using timedelta
# pause = timedelta(seconds=3600)
# difference = finish_dt - start_dt - pause
# first element of timedelta is days, if you want to calculate the difference of days in hours, add difference.days * 24
# hours = int(difference.seconds/3600)
# minutes = (difference.seconds % 3600) / 60
# your code .... 希望我的回答符合你的要求。
https://stackoverflow.com/questions/42154231
复制相似问题