【发布时间】:2015-02-22 23:08:53
【问题描述】:
只是想知道我是否可以将变量的签出时间设置为午夜。
我希望签核为 raw_input,午夜为固定值
到目前为止我有这个:
#!/usr/bin/python
from datetime import datetime
from Tkinter import *
import math
#Variablesr
FMT = '%H%M' #Time Format
rate1 = 35.34 #Base Hourly Rate
rate2 = 35.34 #Base Hourly Rate
rate3 = 35.34 #Base Hourly Rate
rate4 = 35.34 #Base Hourly Rate
rate5 = 35.34 #Base Hourly Rate
rate6 = 50 #Base Hourly Rate
rate7 = 70 #Base Hourly Rate
Midnight = 0000,FMT
amp = 2.40 #Morning shift penalties
pmp = 2.50 #Afternoon shift penalties
ns = 4.4 #Night shift penalties
cabAll = 8.34 #Cab Allowance
signOnSun1 = raw_input("What time did you sign on Sunday: ");
signOffSun1 = raw_input("What time did you sign off Sunday: ");
diff = (datetime.strptime(signOffSun1, FMT) - datetime.strptime (Midnight, FMT))
print diff
【问题讨论】:
-
呃,这其中哪一部分不起作用?
-
Midnight 是一个元组,但应该是一个字符串
-
所以当我周六在 1900 签到时。然后在那天晚上签到 0202。我收到此错误:diff = (datetime.strptime(signOffSun1, FMT) - datetime.strptime (Midnight, FMT)) TypeError: must be string, not tuple
-
当我把它变成这样的字符串时:Midnight = str(0000) 它告诉我它的 %H%M 格式不正确
-
@DerenDevrimol --
tuple是Midnight = 0000,FMT-- 逗号使它成为一个 2 项元组,所以只需去掉,FMT部分并使用'0000'(引号至关重要)必须是字符串)。然而,真正的问题会来,因为你问了一个非常误导性的问题:`“你是什么时候签的星期天:”!如果您现在说您“在 1900 年签署星期六”,那么这个棘手的问题没有正确答案——您从未按照要求在星期日签署!如果班次可以包括午夜,您需要允许输入日期,而不仅仅是时间。
标签: python datetime time difference