首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算两个日期时间字段odoo 9之间的数小时

如何计算两个日期时间字段odoo 9之间的数小时
EN

Stack Overflow用户
提问于 2017-02-10 07:55:58
回答 1查看 1.7K关注 0票数 0

如何在我的示例中计算小时:

((完成-开始)-暂停)

表单视图中的格式

start = 02/10/2017 07:55:54

完成时间=2017年10月2日16:50:54

暂停=1小时(默认)

在控制台日期时间中,如下所示: 2017-02-10 07:55:54

需要这个==>结果= 07:55

代码语言:javascript
复制
How in @api.depends('start', 'finish') 
    def calculate_hours(self):
        #
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-10 09:06:23

您可以使用时间增量或相对增量来计算差异。在此之前,您必须转换为datetime对象。以下是我要做的

代码语言:javascript
复制
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 .... 

希望我的回答符合你的要求。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42154231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档