python-3.x - 在 Python 中查找任何给定年份的 6 月和 12 月的最后营业日期
问题描述
我想找到 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'
推荐阅读
- google-chrome - 如何将请求重新路由到 Google Chrome 上的本地覆盖?
- r - 在ggplot2中将水平矩形添加到分类箱线图
- javascript - 将函数传递给多个孩子reactJS
- javascript - 使用 Javascript 生成类属性的表格棋盘模式
- node.js - '你试图重定向到你当前所在的同一条路线:“/”'当使用带有状态的重定向组件时
- sql - 我收到错误“错误:列“距离”不存在第 2 行:FROM“gps”WHERE distance < 30;“
- c++ - 这是什么类型的 C++ 语法,我应该采取什么步骤来理解它
- scheme - 编写一个找到最小 k 的函数,使得 x 和函数之间的差异
- c# - 如何在 C# 中以特定顺序反转文件中的字节?
- ios - 有没有办法隐藏 UITableView 的页脚?