在Python中增加时间

假设我们有一个字符串,该字符串表示后缀为am或pm的12小时制时钟时间,并且还给出了整数n,我们将在时间上加上n分钟并以相同的格式返回新时间。

因此,如果输入类似于s =“ 8:20 pm”且n = 150,则输出将为10:50 pm

为了解决这个问题,我们将遵循以下步骤-

  • h,m:=取s的小时和分钟部分

  • h:= h mod 12

  • 如果时间s是“ pm”,则

    • h:= h + 12

  • t:= h * 60 + m + n

  • h:= t / 60的商,m:= t / 60的余数

  • h:= h mod 24

  • 后缀:='am'如果h <12否则为'pm'

  • h:= h mod 12

  • 如果h等于0,则

    • h:= 12

  • 返回时间h:m后缀

让我们看下面的实现以更好地理解-

示例

class Solution:
   def solve(self, s, n):
      h, m = map(int, s[:-2].split(':'))
      h %= 12
      if s[-2:] == 'pm':
         h += 12
      t = h * 60 + m + n
      h, m = divmod(t, 60)
      h %= 24
      suffix = 'a' if h < 12 else 'p'
      h %= 12
      if h == 0:
         h = 12
      return "{:02d}:{:02d}{}m".format(h, m, suffix)
ob = Solution()print(ob.solve("8:20pm", 150))

输入值

"8:20pm", 150

输出结果

10:50pm