投稿/コメントを表示します。

社会保険の資格喪失日と控除金額を計算しました。
労務関係は最近仕事ですることになったので良い勉強の機会になりました(●'◡'●)

関数とdicstringは見よう見まねで書いてみました(。・ω・。)
"""
社会保険の資格喪失日・控除金額を取得する
資格喪失日:退職日の翌日
徴収金額:退職日を含む月は徴収しない(月末退職のときは前月と当月の2か月徴収する)
"""
from datetime import timedelta, date


def get_disqualification_list(retiree_list):
    """
    退職者のリストretiree_listから社会保険の資格喪失日・徴収金額が入ったリストを返す

    :param retiree_list:退職者のリスト
    :return: disqualification_list 社会保険の資格喪失日・徴収金額が入ったリスト
    """
    result_list = []
    retiree_list.pop(0)
    for value in retiree_list:
        name, dt, price = value
        retirement_date = date.fromisoformat(dt)  # 退職日
        disqualification_date = retirement_date + timedelta(days=1)  # 資格喪失日(退職日の翌日)

        if not retirement_date.month == disqualification_date.month:
            price *= 2

        disqualification_date = disqualification_date.strftime('%Y-%m-%d')
        result_list.append([name, disqualification_date, price])

    return result_list


retiree_list = [
    ['名前', '退職日', '月額保険料'],
    ['Taro', '2022-01-31', 30000],
    ['Hanako', '2022-08-15', 20000]
]

disqualification_list = get_disqualification_list(retiree_list)
disqualification_list.insert(0, ['名前', '資格喪失日', '徴収金額'])
print(disqualification_list)

出力結果
[['名前', '資格喪失日', '徴収金額'], ['Taro', '2022-02-01', 60000], ['Hanako', '2022-08-16', 20000]]

ついでに住民税の計算もしました。
日付操作の前に辞書の内容をほぼ忘れていると気づいたので、復習します(*^_^*)
"""
住民税
退職月が1-5月のときは一括徴収、6-12月のときは普通徴収する
"""
from datetime import date


def get_resident_tax_list(retiree_dict):
    """
    退職者の辞書retiree_dictから、退職時の住民税徴収額を計算したリストを返す

    :param retiree_dict:退職者の辞書
    :return :住民税徴収額のリスト
    """
    result_list = []
    for key, value in retiree_dict.items():
        for dic in value:
            dt, price = dic.values()
            dt = date.fromisoformat(dt)
            if dt.month < 6:
                price *= (6 - dt.month)
        result_dict = dict(name=key, price=price)
        result_list.append(result_dict)
    return result_list


retiree_dict = {
    'Taro': [{'日付': '2022-01-31', '金額': 20000}],
    'Hanako': [{'日付': '2022-08-15', '金額': 15000}]
}

for dic in get_resident_tax_list(retiree_dict):
    print(f"{dic['name']}さんの住民税の徴収額は{dic['price']}円です")

出力結果
Taroさんの住民税の徴収額は100000円です
Hanakoさんの住民税の徴収額は15000円です

2022/08/16 07:48