在 Python 中查找任何给定年份的 6 月和 12 月的最后一个营业日期

find the last business date for June and Dec of any given year in Python

我想查找 2019 年 6 月和 12 月的最后一个工作日。我的以下代码给出了上个月和本月的最后一个工作日。理想情况下,我想要一个允许我输入年份和月份的代码,它会告诉我我输入的月份和年份的最后一个工作日。

我希望 2019 年 6 月和 2019 年 12 月的输出是这样的

2906 3112

希望有人能帮帮我,谢谢

from pandas.tseries.offsets import BMonthEnd
from datetime import date

d=date.today()

offset = BMonthEnd()

#Last day of current month
current_month = offset.rollforward(d)
print(current_month)

#Last day of previous month
last_month = offset.rollback(d)
print(last_month)

这是一个函数,它将查找给定月份的最后一个工作日并将其格式化为给定格式的字符串

import datetime

def last_weekday(year, month):
    # Add a month
    if month == 12:
        month = 1
        year += 1
    else:
        month += 1

    d = datetime.date(year, month, 1)

    # Subtract a day
    d -= datetime.timedelta(days=1)

    # Subtract more days if we have a weekend
    while d.weekday() >= 5:
        d -= datetime.timedelta(days=1)

    return '{:02d}{:02d}'.format(d.month, d.day)

# Examples:
last_weekday(2019, 6)  # -> '0628'
last_weekday(2019, 12) # -> '1231'