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

Chương trình Python kiểm tra ngày hợp lệ và in ngày kế tiếp

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.