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

Lấy ngày cuối tháng trong Python

Dùng calendar.monthrange(year, month) trả về tuple: (weekday của ngày 1, số ngày trong tháng).

Ví dụ

import calendar

day, num_days = calendar.monthrange(2017, 12)
last_week = num_days % 7
last_day = (day + last_week) % 7
print(last_day)

Kết quả

0

Giải thích: Ngày 0-6 bắt đầu từ Sunday. Kết quả 0 = Sunday.

Cách đơn giản hơn: Lấy date object cuối tháng

from datetime import date, timedelta

def last_day_of_month(year, month):
    if month == 12:
        next_month = date(year + 1, 1, 1)
    else:
        next_month = date(year, month + 1, 1)
    return next_month - timedelta(days=1)

print(last_day_of_month(2017, 12))  # 2017-12-31