Я пытаюсь получить дату начала финансового года на основе сегодняшней даты.
Поэтому после небольшого исследования я нашел этот пакет под названием fiscalyear
, где вы можете изменить дату начала финансового года.В моем случае я хотел, чтобы 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'
Однако это не будет работать, когда месяц переходит на август, так как 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