Bài tập  /  Bài đang cần trả lời

Kỳ nghỉ hè năm nay Nam không đi học thêm mà sẽ dành toàn bộ thời gian để học kỹ năng mềm và học võ. Lịch học võ của Nam sẽ bắt đầu vào ngày d tháng m năm y và chỉ học vào các ngày lẻ, tuy nhiên Nam nhớ rằng cứ hai ngày sẽ đi học võ một lần..

----- Nội dung dịch tự động từ ảnh -----
Kỳ nghỉ hè năm nay Nam không đi học thêm mà sẽ dành toàn bộ thời gian để học
kỹ năng mềm và học võ. Lịch học võ của Nam sẽ bắt đầu vào ngày d tháng m năm y và
chỉ học vào các ngày lẻ, tuy nhiên Nam nhớ rằng cứ hai ngày sẽ đi học võ một lần.
Một ngày Nam đến lớp nhưng không thấy thầy và các bạn đâu liền xem lại lịch thì
phát hiện hôm nay là ngày chẵn.
Hãy cho biết ngày chẵn đầu tiên Nam đến lớp học do nhầm lịch.
Dữ liệu vào: Nhập từ bàn phím ba số nguyên d,m,y
Kết quả: ghi ra màn hình ngày chẵn đầu tiên Nam đến lớp học do nhầm lịch. Kết
quả ghi ra màn hình theo thứ tự ngày, tháng, năm.
Biết rằng:
+Dữ liệu nhập vào luôn hợp lệ
+ 1900 ≤ y ≤ 2038
+ Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết
cho 100. Ví dụ 1900 không phải là năm nhuận, 2000 là năm nhuận.
Ví dụ:
Dữ liệu vào | Dữ liệu ra
19 3 2019
24 2019
Giải thích: Nam sẽ đi học võ vào các ngày 19, 21, 23, 25, 27, 29, 31 của tháng 3. Đến
ngày 2 tháng 4 Nam đi học nhầm lịch.
1 trả lời
Hỏi chi tiết
218
0
0
GUNTER OBERDORF ...
24/01 22:05:03
+5đ tặng
from datetime import datetime, timedelta

def is_leap_year(year):
    return year % 400 == 0 or (year % 4 == 0 and year % 100 != 0)

def get_next_day(d, m, y):
    if m in [1, 3, 5, 7, 8, 10, 12]:
        max_day = 31
    elif m in [4, 6, 9, 11]:
        max_day = 30
    else:
        if is_leap_year(y):
            max_day = 29
        else:
            max_day = 28

    if d == max_day:
        d = 1
        if m == 12:
            m = 1
            y += 1
        else:
            m += 1
    else:
        d += 1

    return d, m, y

def find_first_even_day():
    d, m, y = map(int, input().split())
    start_date = datetime(y, m, d)
    current_date = start_date

    while True:
        current_date += timedelta(days=2)
        if current_date.day % 2 == 0:
            print(current_date.day, current_date.month, current_date.year)
            break

find_first_even_day()

 

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Bài tập liên quan
Bài tập Lập trình Lớp 7 mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Gia sư Lazi Gia sư
×
Trợ lý ảo Trợ lý ảo