相关疑难解决方法(0)

带有负值的Python timedelta问题

嗨,我需要一些帮助才能理解为什么会这样.我有一种方法来跟踪事件程序中的"剩余时间":

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)

python timedelta

30
推荐指数
2
解决办法
3万
查看次数

标签 统计

python ×1

timedelta ×1