Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cộng thời gian trong Python

Cho chuỗi thời gian định dạng 12h (có am/pm) và số phút n. Cộng n phút và trả về thời gian mới cùng định dạng.

Ví dụ: "8:20pm", n=150 → "10:50pm".

Các bước giải quyết

  • Tách giờ h, phút m từ chuỗi
  • h %= 12, nếu 'pm' thì h += 12
  • t = h*60 + m + n (tổng phút)
  • h, m = divmod(t, 60), h %= 24
  • Xác định hậu tố 'am'/'pm', chuyển h về 12h (h %= 12, nếu 0 thì 12)
  • Trả về chuỗi định dạng HH:MM{am/pm}

Ví dụ mã Python

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))

Đầu vào

"8:20pm", 150

Đầu ra

10:50pm