带有不同工作日的两个时间戳之间的差异?

拉法·阿西里(Rafa Acioly)

我有以下日期:

Tue 19:00-20:00
Wed 04:25-15:14

我怎样才能得到之间的区别Tue 20:00Wed 04:25

我试图将其转换为datetime对象,但是由于我没有月份或年份的日期,所以两个对象都将获得相同的日期:

d1 = datetime.strptime("Tue 20:00", "%a %H:%M")
d2 = datetime.strptime("Wed 04:25", "%a %H:%M")
  • d1是: datetime.datetime(1900, 1, 1, 20, 0)
  • d2是: datetime.datetime(1900, 1, 1, 4, 25)

分钟数的差异应该是,505但在这种情况下将是-935.0因为它们具有相同的日期,因此它们相差将近16个小时,而不是8个半左右:

diff = (d2 - d1).total_seconds() / 60  # -935.0
马丁·彼得斯(Martijn Pieters)

datetime.strptime()不能做其他任何事情,因为星期几不足以构成日期。您需要一周的工作日和一年的工作日才能有意义。如果需要获取假定在同一周的两个日期之间相对差,则可以使用任何周数和年份,例如:

arbitrary_iso_week = "2020-25 "

d1 = datetime.strptime(arbitrary_iso_week + "Tue 20:00", "%G-%V %a %H:%M")
d2 = datetime.strptime(arbitrary_iso_week + "Wed 04:25", "%G-%V %a %H:%M")

这利用了ISO 8601周编号%G%V格式化程序

这将产生具有更有意义的日期关系的datetime对象:

>>> arbitrary_iso_week = "2020-25 "
>>> d1 = datetime.strptime(arbitrary_iso_week + "Tue 20:00", "%G-%V %a %H:%M")
>>> d2 = datetime.strptime(arbitrary_iso_week + "Wed 04:25", "%G-%V %a %H:%M")
>>> d1
datetime.datetime(2020, 6, 16, 20, 0)
>>> d2
datetime.datetime(2020, 6, 17, 4, 25)
>>> (d2 - d1).total_seconds() / 60
505.0

实际日期在这里并不重要,只是它们之间的天数差异。d1现在早于,而不晚于d2

您可能需要考虑到周日是循环的,因为您可能有一个较早的日期(例如星期五)和一个较晚的星期一。如果可以假定第一个值必须早于第二个值,那么解决方案很简单。d1如果晚于d2:,只需减去7天

# if the first date must come before the second, then it must be one week earlier.
if d1 > d2:
    d1 -= timedelta(days=7)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

找到带有时间戳的两个日期之间的分钟差异?

来自分类Dev

时间和工作日的两个字符串之间的差异

来自分类Dev

如何在JavaScript中获取两个不同日期之间的工作日

来自分类Dev

计算两个时间戳之间的差异,并获得Unix时间戳之间的差异

来自分类Dev

计算两个时间戳之间的差异,并获得unix时间戳之间的差异

来自分类Dev

计算两个日期之间的工作日

来自分类Dev

两个约会火鸟之间的工作日

来自分类Dev

可可-计算两个日期之间的工作日

来自分类Dev

计算两个日期之间的特定工作日

来自分类Dev

PHP中两个时间戳之间的差异

来自分类Dev

查找两个时间戳之间的差异-iOS

来自分类Dev

计算bash中两个时间戳之间的差异

来自分类Dev

如何获得两个时间戳之间的差异?

来自分类Dev

两个时间戳之间的差异(以秒为单位)

来自分类Dev

比较两个不同工作表中的两列,然后突出显示差异

来自分类Dev

在具有不同时间戳的两个文档之间减去数字字段

来自分类Dev

仅工作日在两个日期和两次之间进行SQL查询

来自分类Dev

python-dateutil-RRule-不同工作日的不同时间

来自分类Dev

带有子查询的两个日期之间的差异

来自分类Dev

无法使用 Joda 时间获得两个时间戳之间的正确差异

来自分类Dev

两个时间戳之间的天数

来自分类Dev

在linq中获取两个日期之间的工作日计数

来自分类Dev

计算两个日期之间的总业务工作日

来自分类Dev

如何在xslt 1.0中仅获取两个日期之间的工作日

来自分类Dev

计算Javascript中两个日期之间的工作日(节假日除外)

来自分类Dev

优化两个日期之间的工作日统计信息查询

来自分类Dev

在Postgresql中获取两个日期之间的工作日

来自分类Dev

给定多个工作日作为输入,计算两个日期之间的“实际”天数

来自分类Dev

两个NSD之间发生的特定工作日计数

Related 相关文章

  1. 1

    找到带有时间戳的两个日期之间的分钟差异?

  2. 2

    时间和工作日的两个字符串之间的差异

  3. 3

    如何在JavaScript中获取两个不同日期之间的工作日

  4. 4

    计算两个时间戳之间的差异,并获得Unix时间戳之间的差异

  5. 5

    计算两个时间戳之间的差异,并获得unix时间戳之间的差异

  6. 6

    计算两个日期之间的工作日

  7. 7

    两个约会火鸟之间的工作日

  8. 8

    可可-计算两个日期之间的工作日

  9. 9

    计算两个日期之间的特定工作日

  10. 10

    PHP中两个时间戳之间的差异

  11. 11

    查找两个时间戳之间的差异-iOS

  12. 12

    计算bash中两个时间戳之间的差异

  13. 13

    如何获得两个时间戳之间的差异?

  14. 14

    两个时间戳之间的差异(以秒为单位)

  15. 15

    比较两个不同工作表中的两列,然后突出显示差异

  16. 16

    在具有不同时间戳的两个文档之间减去数字字段

  17. 17

    仅工作日在两个日期和两次之间进行SQL查询

  18. 18

    python-dateutil-RRule-不同工作日的不同时间

  19. 19

    带有子查询的两个日期之间的差异

  20. 20

    无法使用 Joda 时间获得两个时间戳之间的正确差异

  21. 21

    两个时间戳之间的天数

  22. 22

    在linq中获取两个日期之间的工作日计数

  23. 23

    计算两个日期之间的总业务工作日

  24. 24

    如何在xslt 1.0中仅获取两个日期之间的工作日

  25. 25

    计算Javascript中两个日期之间的工作日(节假日除外)

  26. 26

    优化两个日期之间的工作日统计信息查询

  27. 27

    在Postgresql中获取两个日期之间的工作日

  28. 28

    给定多个工作日作为输入,计算两个日期之间的“实际”天数

  29. 29

    两个NSD之间发生的特定工作日计数

热门标签

归档