【问题标题】:How to calculate Time Between Day one and Day two (Python) [duplicate]如何计算第一天和第二天之间的时间(Python)[重复]
【发布时间】:2014-12-25 03:53:30
【问题描述】:
 from datetime import datetime

 FMT = '%H%M'
 rate1 = 35.34 
 Midnight = "0000"

signOnSun1 = raw_input("What time did you sign on Sunday: ");
signOffSun1 = raw_input("What time did you sign off Sunday: ");

totalShift = (datetime.strptime(signOffSun1, FMT) - datetime.strptime (signOnSun1,   FMT))

midnightToSignOff = (datetime.strptime(signOffSun1, FMT) - datetime.strptime (Midnight, FMT))
midnightToSignOff = diff.total_seconds()/60.0/60

基本上这就是我所拥有的。如果我在 1800 签到并在那天晚上 0200 签退,我无法返回 8 8 小时的正确答案

【问题讨论】:

  • 你能给我们一些简单的代码来展示你想要做什么吗?没有大量不必要的常量、Tkinter 和用户输入?
  • 使用datetime(具体为datetime.timedelta)查找时差。
  • 不应该返回 2 小时,午夜到 0200 吗?还是您想要登录和注销之间的总时间?
  • 登录和注销之间的总时间 =)

标签: python date time


【解决方案1】:

问题是程序不知道班次在第二天结束。考虑到这一点,您可以检查登录时间是否晚于签出时间,如果是这种情况,请在签出时间上增加一天。

from datetime import datetime, timedelta

FMT = '%H%M'
sign_on_time_str = raw_input("What time did you sign on Sunday: ");
sign_off_time_str = raw_input("What time did you sign off Sunday: ");
sign_on_time = datetime.strptime(sign_on_time_str, FMT)
sign_off_time = datetime.strptime(sign_off_time_str, FMT)

if sign_on_time > sign_off_time:
    sign_off_time += timedelta(days=1)

total_shift = sign_off_time - sign_on_time
print total_shift.total_seconds() / 60 / 60

【讨论】:

    猜你喜欢
    • 2016-05-14
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    相关资源
    最近更新 更多