ตรวจสอบความถูกต้องของวันที่ (dd/mm/yyyy) แล้วคำนวณวันถัดไป โดยพิจารณาจำนวนวันในแต่ละเดือนและปีอธิกสุรทิน
ตัวอย่างโค้ด
date_str = input("Enter date (dd/mm/yyyy): ")
dd, mm, yy = map(int, date_str.split('/'))
# Days in month
if mm in [1,3,5,7,8,10,12]:
max_day = 31
elif mm in [4,6,9,11]:
max_day = 30
elif (yy % 4 == 0 and yy % 100 != 0) or (yy % 400 == 0):
max_day = 29
else:
max_day = 28
if not (1 <= mm <= 12 and 1 <= dd <= max_day):
print("Invalid date")
elif dd == max_day and mm != 12:
print(f"Next day: {1:02d}/{mm+1:02d}/{yy}")
elif dd == 31 and mm == 12:
print(f"Next day: 01/01/{yy+1}")
else:
print(f"Next day: {dd+1:02d}/{mm:02d}/{yy}")ผลลัพธ์
Enter date (dd/mm/yyyy): 05/07/2021 Next day: 06/07/2021
คำอธิบาย
แยก dd, mm, yy จากสตริง input
กำหนด max_day ตามเดือนและปีอธิกสุรทิน
ตรวจสอบ validity: เดือน 1-12, วัน 1-max_day
กรณีสิ้นเดือน: dd=max_day → วัน=1, เดือน+1
กรณีสิ้นปี: 31/12 → 01/01/(ปี+1)
กรณีปกติ: วัน+1