我已经建立了一个函数来获取当前季度的第一天和最后一天,但它有点冗长。我在想,有没有更简洁的方法来完成这件事?
我知道pandas
有一个QuarterBegin()
函数,但我无法以更简洁的方式实现它。
import datetime as dt
from dateutil.relativedelta import relativedelta
def get_q(first=None,last=None):
today = dt.date.today()
qmonth = [1, 4, 7, 10]
if first:
for i,v in enumerate(qmonth):
if (today.month-1)//3 == i:
return dt.date(today.year,qmonth[i],1).strftime("%Y-%m-%d")
if last:
firstday = dt.datetime.strptime(get_q(first=True),"%Y-%m-%d")
lastday = firstday + relativedelta(months=3, days=-1)
return lastday.strftime("%Y-%m-%d")
编辑:请告诉我这是否更适合Code Review
为什么这么复杂:-)
你可以这样做:
这解决了“第一个”情况;我将“最后一个”情况留作练习,但我建议将其作为一个独立的函数来澄清(对于您的原始版本,如果没有参数被传递,会发生什么非常奇怪的事情!)。
为什么要自己滚?
相关问题 更多 >
编程相关推荐