Python 中的時間加法


假設我們有一個字串,它用帶有 am 或 pm 字尾的 12 小時制時間表示,並且還給出了一個整數 n,我們向時間加 n 分鐘,並以相同的格式返回新時間。

因此,如果輸入為 s = "8:20pm" 且 n = 150,那麼輸出為 10:50pm

為解決此問題,我們將遵循以下步驟 -

  • 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

  • 如果 h < 12,則 suffix := 'am',否則 suffix := 'pm'

  • h := h mod 12

  • 如果 h 與 0 相同,則

    • h := 12

  • 返回時間 h:m suffix

讓我們看看以下實現以更好地理解 -

範例

 即時演示

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

更新於: 02-Sep-2020

4K+ 瀏覽次數

開啟你的 職業

透過完成課程獲取認證

開始
廣告
© . All rights reserved.