tky*_*ass 8 python datetime calendar
我想找到这个月的最后一个工作日.我为此编写了下面的代码并且工作正常,但我想知道是否有更清洁的方法呢?
from datetime import date,timedelta
import datetime
import calendar
today=datetime.date.today()
last = today.replace(day=calendar.monthrange(today.year,today.month)[1])
if last.weekday()<5:
print last
else:
print last-timedelta(days=1+last.weekday()-5)
Run Code Online (Sandbox Code Playgroud)
提前致谢!
Elk*_*lke 12
我使用以下内容:
from pandas.tseries.offsets import BMonthEnd
from datetime import date
d=date.today()
offset = BMonthEnd()
#Last day of current month
offset.rollforward(d)
#Last day of previous month
offset.rollback(d)
Run Code Online (Sandbox Code Playgroud)
假设您希望获得本月的最后一个工作日直到未来两年结束,以下方法将起作用。
import pandas as pd
import datetime
start = datetime.date.today()
end = datetime.date(start.year+2, 12, 31)
bussiness_days_rng =pd.date_range(start, end, freq='BM')
Run Code Online (Sandbox Code Playgroud)
对于单线粉丝:
import calendar
def last_business_day_in_month(year: int, month: int) -> int:
return max(calendar.monthcalendar(year, month)[-1:][0][:5])
Run Code Online (Sandbox Code Playgroud)
您可以用来Pandas获取工作日。请参阅http://pandas.pydata.org/pandas-docs/stable/timeseries.html
您也可以参考此https://pypi.python.org/pypi/business_calendar/进行简单的工作日计算。
| 归档时间: |
|
| 查看次数: |
12722 次 |
| 最近记录: |