Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

บวกนาทีให้เวลา 12 ชั่วโมงใน Python

ภาพรวม

โจทย์บวก n นาทีให้เวลาในรูปแบบ 12 ชั่วโมง (มี am/pm) คืนเวลาใหม่ในรูปแบบเดิม

ตัวอย่าง

อินพุต: "8:20pm", n = 150 นาที

8:20pm = 20:20 (24h)

+150 นาที = 20:20 + 2:30 = 22:50

22:50 = 10:50pm → "10:50pm"

โค้ด 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))

ขั้นตอน

  1. แยกชั่วโมง นาที จากสตริง (ตัด am/pm ทิ้ง)
  2. แปลงเป็น 24h: pm → +12, 12am → 0, 12pm → 12
  3. แปลงเป็นนาทีรวม + n
  4. divmod กลับเป็น ชั่วโมง, นาที
  5. mod 24 จัดการข้ามวัน
  6. แปลงกลับ 12h + am/pm

ผลลัพธ์

10:50pm