a/c/e cho em bài tập này với ạ, em cám ơn
Đề bài: Lịch Gregorius, còn gọi là Tây lịch, Công lịch, là một bộ lịch tiêu chuẩn hiện nay được dùng trên hầu hết khắp thế giới do Giáo hoàng Grêgôriô XIII đưa ra vào năm 1582. Tại Việt Nam, Tây lịch được áp dụng ở các công sở vào cuối thế kỷ 19.
Theo lịch Gregorius thì những năm nào chia hết cho 4 và không chia hết cho 100 được coi là năm nhuận (ví dụ năm 2000 không phải là năm nhuận, 2004 là năm nhuận). Trong năm nhuận, tháng 2 có 29 ngày thay cho 28 ngày. Cứ 4 năm lại thêm 1 ngày vào lịch bởi vì một năm dương lịch dài khoảng 365 ngày và 6 giờ.
Tuy nhiên , vẫn có một số ngoại lệ đối với nguyên tắc này vì một năm dương lịch ngắn hơn 365,25 ngày một chút. Những năm chia hết cho 100 chỉ được coi là năm nhuận nếu chúng cũng chia hết cho 400. Ví dụ, 1600 và 2000 là các năm nhuận nhưng 1700, 1800 và 1900 không phải năm nhuận. Tương tự như vậy, 2100, 2200, 2300, 2500, 2600, 2700, 2900 và 3000 không phải năm nhuận nhưng 2400 và 2800 là các năm nhuận. Theo nguyên tắc này thì trung bình một năm có 365 ngày 5 giờ 49 phút và 12 giây.
Cho trước số ngày trong một tháng của năm không nhuận như sau:
Tháng 1 có 31 ngày
Tháng 2 có 28 ngày
Tháng 3 có 31 ngày
Tháng 4 có 30 ngày
Tháng 5 có 31 ngày
Tháng 6 có 30 ngày
Tháng 7 có 31 ngày
Tháng 8 có 31 ngày
Tháng 9 có 30 ngày
Tháng 10 có 31 ngày
Tháng 11 có 30 ngày
Tháng 12 có 31 ngày
Hãy viết chương trình xuất ra ngày tiếp theo của 1 ngày cho trước.
Các biến d, m, y là các số nguyên được nhập vào từ bàn phím, lần lượt lưu giá trị ngày, tháng, năm của một ngày cho trước. Xuất ra màn hình ngày, tháng, năm của ngày tiếp theo ngày đó theo định dạng:
Bài làm:
m = int(input())
y = int(input())
if (y % 400 == 0) or (y % 4 == 0 and y % 100 != 0) and (d==29) and (m==2):
d_af = 1
m_af = 3
y_af = y
print(d_af, m_af, y_af)
else:
if (m == 2) and (d <= 28) and (m<12):
if d == 28:
d_af = 1
m_af = m+1
y_af = y
print(d_af, m_af, y_af)
else:
d_af = d+1
m_af = m
y_af = y
print(d_af, m_af, y_af)
elif (m == 4) or (m == 6) or (m == 9) or (m == 11) and (d <= 30) and (m<12):
if d == 30:
d_af = 1
m_af = m+1
y_af = y
print(d_af, m_af, y_af)
else:
d_af = d+1
m_af = m
y_af = y
print(d_af, m_af, y_af)
elif (m == 1) or (m == 3) or (m == 5 )or (m == 7) or (m == 8) or (m == 10) and (d <= 31) and (m<12):
if d == 31:
d_af = 1
m_af = m+1
y_af = y
print(d_af, m_af, y_af)
else:
d_af = d+1
m_af = m
y_af = y
print(d_af, m_af, y_af)
elif (m == 12) and (d <= 31):
if d == 31:
d_af = 1
m_af = 1
y_af = y
print(d_af, m_af, y_af)
else:
d_af = d+1
m_af = m
y_af = y
print(d_af, m_af, y_af)
else:
print("nhap sai")