您可以这样操作:
import bisectimport datetime as dtdef get_quarter_begin(): today = dt.date.today() qbegins = [dt.date(today.year, month, 1) for month in (1,4,7,10)] idx = bisect.bisect(qbegins, today) return str(qbegins[idx-1])
这解决了“第一种”情况;我将保留“最后一个”案例作为练习,但是为了清楚起见,我建议将其保留为一个独立的函数(对于您的原始版本,如果不传递任何参数,将会很奇怪!)。



