Nhập ngày/tháng/năm, kiểm tra hợp lệ (xét tháng, năm nhuận), in ngày hôm sau.
Ví dụ
date_str = input("Nhập ngày (dd/mm/yyyy): ")
dd, mm, yy = map(int, date_str.split('/'))
# Xác định số ngày tối đa của tháng
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
# Kiểm tra hợp lệ
if not (1 <= mm <= 12 and 1 <= dd <= max_day):
print("Ngày không hợp lệ")
else:
# Tính ngày kế tiếp
if dd == max_day:
dd = 1
if mm == 12:
mm = 1
yy += 1
else:
mm += 1
else:
dd += 1
print(f"Ngày kế tiếp: {dd:02d}/{mm:02d}/{yy}")
Kết quả
Nhập ngày (dd/mm/yyyy): 05/07/2021 Ngày kế tiếp: 06/07/2021
Giải thích
- Tách dd, mm, yy bằng
split('/')vàmap(int, ...). - Xác định max_day theo tháng, năm nhuận: chia 400 hoặc (chia 4 và không chia 100).
- Kiểm tra dd, mm trong phạm vi.
- Tăng ngày: nếu hết tháng -> reset ngày, tăng tháng; nếu hết năm -> reset tháng, tăng năm.
- Format output
:02dđể có leading zero.