Odoo 中文社区

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Popular
    • Users
    • Groups

    Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

    开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

    如果您登录系统碰到问题,请在微信公众号留言:

    如何用python快速的算出两个时间段中重叠的天数

    Python 开发
    2
    4
    1752
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • digitalsatori
      digitalsatori 管理员 last edited by

      比如一个时间段是:2018年1月15日到2018年5月10日
      另一个时间段是:2018年3月20日到2018年9月15日
      计算重叠天数

      >>> from datetime import datetime
      >>> from collections import namedtuple
      >>> Range = namedtuple('Range', ['start', 'end'])
      
      
      >>> r1 = Range(start=datetime(2018, 1, 15), end=datetime(2018, 5, 10))
      >>> r2 = Range(start=datetime(2018, 3, 20), end=datetime(2018, 9, 15))
      >>> latest_start = max(r1.start, r2.start)
      >>> earliest_end = min(r1.end, r2.end)
      >>> delta = (earliest_end - latest_start).days + 1
      >>> overlap = max(0, delta)
      >>> overlap
      52
      

      【上海先安科技】(tony AT openerp.cn)

      1 Reply Last reply Reply Quote 2
      • 萧
        萧云飞 last edited by

        哈哈哈,大佬这个题是集思广益,我来献下丑:
        0_1517449691859_360桌面截图20180201094659.jpg

        digitalsatori 1 Reply Last reply Reply Quote 0
        • digitalsatori
          digitalsatori 管理员 @萧云飞 last edited by

          @萧云飞 感谢提供你的方案,棒!
          解决的思路是类似的,不过兄弟没有考虑当两个时间段没有交集的情况:face_with_stuck-out_tongue_winking_eye:

          【上海先安科技】(tony AT openerp.cn)

          萧 1 Reply Last reply Reply Quote 0
          • 萧
            萧云飞 @digitalsatori last edited by

            @digitalsatori 就是,哈哈,被您一说,才发现。这个就只能提前判断是否有交汇了😄

            1 Reply Last reply Reply Quote 0
            • First post
              Last post