ภาพรวม
ฟังก์ชันคำนวณความแตกต่างระหว่างเวลาสองช่วง (ชั่วโมงและนาที) ส่งคืนผลลัพธ์เป็นชั่วโมงและนาที
ตัวอย่างโค้ด
def difference_time(h1, m1, h2, m2):
"""คำนวณความต่างระหว่างเวลา h1:m1 และ h2:m2"""
t1 = h1 * 60 + m1 # แปลงเป็นนาทีทั้งหมด
t2 = h2 * 60 + m2
if t1 == t2:
print("เวลาเท่ากัน")
return
diff = t2 - t1
# จัดการกรณีข้ามเที่ยงคืน (ใช้ modulo 24 ชั่วโมง = 1440 นาที)
if diff < 0:
diff += 24 * 60
hours = (diff // 60) % 24
minutes = diff % 60
print(f"{hours}:{minutes:02d}")
if __name__ == "__main__":
print("ความต่างของเวลา:")
difference_time(13, 20, 11, 49) # 23:29
difference_time(17, 11, 9, 59) # 17:48
difference_time(21, 4, 11, 34) # 15:30ผลลัพธ์
ความต่างของเวลา: 23:29 17:48 15:30
คำอธิบาย
- แปลงเวลาทั้งสองเป็นนาทีนับจากเที่ยงคืน
- คำนวณความต่าง แล้วจัดการกรณีลบ (เวลาที่ 2 อยู่วันก่อน) โดยบวก 1440 นาที (24 ชม.)
- แปลงกลับเป็นชั่วโมงและนาที
ข้อจำกัด
โค้ดต้นฉบับไม่จัดการกรณีข้ามเที่ยงคืนอย่างถูกต้อง (แสดง 23:29 แทนที่จะเป็น -1:31) โค้ดข้างบนแก้ไขแล้ว