以前に掲載した
PythonでJDLIBEX出納帳のCSV出力のファイルから月次推移表を作成
という記事の中のプログラムで、
kikan = [20190101,20190201,20190301,20190401,20190501,20190601,20190701,20190801,20190901,20191001,20191101,20191201,20191331,20191332]
といったようにプログラムの中で使用する日付のリストを直接記述していたのですが、これだと顧問先によって事業年度が変わるごとにこの部分を書き換えないといけなくなります。
そこで決算日を’20191231’、’20200331’のように入力するとそれに応じた日付のリストを作成するプログラムを作成しました。
import math
def jdl_nendo():
val = input('Closing_date: ')
year = val[0:4]
int_year = int(year) * 10000
month = val[4:6]
int_month = int(month) * 100
if int_month < 1200:
year_begin = int_year - 10000
month_begin = int_month + 100
else:
year_begin = int_year
month_begin = int_month - 1100
list = [i for i in range(month_begin,month_begin + 1200,100)]
list_2 = [year_begin + n +1 if n <1300 else year_begin + 8800 +n +1 for n in list]
if int_month < 1200:
list_2.append(year_begin + 11331)
list_2.append(year_begin + 11332)
else:
list_2.append(year_begin + 1331)
list_2.append(year_begin + 1332)
return list_2
このプログラムを’list_function.py’という名前のファイルに保存します。
他のプログラムで、
from list_function import jdl_nendo
とすることで、例えば
kikan = jdl_nendo()
と記述することにより、
[20190401, 20190501, 20190601, 20190701, 20190801, 20190901, 20191001, 20191101, 20191201, 20200101, 20200201, 20200301, 20201331, 20201332]
のようなリストを取得することができます。