python - 根据当前时间戳获取会计年度-python
问题描述
我正在尝试根据今天的日期获取财政年度的开始日期。
所以经过一番研究,我发现这个包名为fiscalyear
where you can modify the start date of the会计年度。就我而言,我想01-07-year
成为我会计年度的开始日期,所以我设置fiscalyear.START_MONTH = 7
我已经尝试了以下(如果你可以重现的例子pip install fiscalyear
):
import datetime
import fiscalyear
fiscalyear.START_MONTH = 7
a = fiscalyear.FiscalYear(datetime.datetime.now().year).start.date()
a.strftime('%Y-%m-%d')
哪个输出正确:
'2018-07-01'
但是,当月份转到 8 月时,这将不起作用,因为datetime.datetime.now().year
不会改变。所以我尝试做类似的事情:
if (datetime.datetime.now()-pd.to_datetime('2018-07-01')).days < 365:
a = fiscalyear.FiscalYear(datetime.datetime.now().year).start.date()
print(a.strftime('%Y-%m-%d'))
else:
a = fiscalyear.FiscalYear(datetime.datetime.now().year+1).start.date()
print(a.strftime('%Y-%m-%d'))
我对我正在做的事情有一种不好的感觉,因为这现在可能也适用于闰年。
在 python 中是否有更好的方法可以根据当前时间戳检测财政年度的开始日期?
py版本:3.6.7
解决方案
我在财政领域的知识接近于0,但根据[ReadTheDocs]:财政年度文档:
该类
FiscalYear
提供了一个对象,用于存储有关特定会计年度开始和结束的信息。...
每个季度的开始和结束都存储为
FiscalDateTime
类的实例。该类提供与datetime
该类相同的所有功能,并增加了查询会计年度和季度的能力
因此,FiscalYear不能与日期一起使用,而是FiscalDateTime(或其更简单的兄弟:FiscalDate)代替。
>>> import fiscalyear >>> fiscalyear.START_MONTH = 7 >>> >>> cur_y = fiscalyear.FiscalYear(datetime.datetime.now().year) >>> cur_y.start.date() datetime.date(2018, 7, 1) >>> cur_y.end.date() datetime.date(2019, 6, 30) >>> >>> cur_dt = fiscalyear.FiscalDate(2019, 2, 19) # Current date (at answer time) >>> cur_dt.fiscal_year 2019 >>> >>> jul_dt = fiscalyear.FiscalDate(2019, 7, 19) # A date past July 1st (when the fiscal year should change) >>> jul_dt.fiscal_year 2020