Pythonで事業年度の毎月1日の日付のリストを作成する

以前に掲載した

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]

のようなリストを取得することができます。

タイトルとURLをコピーしました