嗨,我需要一些帮助才能理解为什么会这样.我有一种方法来跟踪事件程序中的"剩余时间":
def get_program_time_budget(self):
return self.estimated_duration-self.get_program_duration()
Run Code Online (Sandbox Code Playgroud)
当estimated_duration> self.get_program_duration()时,所有这些都很好,但是当事情变得有趣时.
结果显示给用户:
Estimated 11 hours Allocated 10 hours 55 minutes Remaining 5 minutes
Run Code Online (Sandbox Code Playgroud)
当结果为负时,它会这样做:
Estimated 11 hours Allocated 11 hours 5 minutes Remaining -1 day 23 hours 55 minutes
Run Code Online (Sandbox Code Playgroud)
任何想法如何获得结果-5分钟?
编辑:这是timedelta格式化程序(注意这是一个Django过滤器,因此接收时间值作为str - 但它存储为timedelta):
def format_duration(value):
try:
delim = ':'
toks = value.split(',')
hour = minute = ''
d_string = value.count('day') and toks[0] or ''
h, m, s = d_string and toks[-1].strip().split(delim) or value.split(delim)
try:
hour = int(h)
except:
pass
try:
minute = int(m)
except: …Run Code Online (Sandbox Code Playgroud)