Pythonで生年月日から現在の年齢を計算する

Python

Pythonで生年月日から現在の年齢を計算するには?

業務プログラムを作成時には生年月日から年齢を計算したい場合があります。

本記事では、Pythonで生年月日から年齢を取得する方法を紹介します。

指定された生年月日に基づいて現在の年齢を計算するサンプルコード

年齢を計算する関数とテストコードを紹介します。

from datetime import datetime

def calc_age(birthdate):
    """
    指定された生年月日に基づいて現在の年齢を計算する関数。
    生年月日は YYYYMMDD の形式。

    Parameters:
    birthdate (str): 生年月日を表す文字列。

    Returns:
    int: 現在の年齢
    """
    # 生年月日を解析するための形式を定義
    birthdate_format = "%Y%m%d"
    
    # 文字列形式の生年月日をdatetimeオブジェクトに変換
    birthdate_obj = datetime.strptime(birthdate, birthdate_format)
    
    # 現在の日付を取得
    today = datetime.today()
    
    # 年齢の計算。今年の誕生日を迎えていなければ1を引く
    age = today.year - birthdate_obj.year - ((today.month, today.day) < (birthdate_obj.month, birthdate_obj.day))
    
    return age




##############################################################
# 関数のテスト
if __name__ == "__main__":
        
    # 太宰治の生年月日
    age = calc_age("19090619")
    print("太宰治は" + str(age) + "才\n") 

    # 本日の日付は0才
    today = datetime.today()
    today_str = today.strftime("%Y%m%d")
    print("本日は" + today_str + "日です。")
    age = calc_age(today_str)
    print("本日生まれた人は" + str(age) + "才です。")

処理内容はとても単純で、以下2点の処理をしているだけです。
・現在の年から誕生日の年を引く
・今日日付と誕生日を比較して、誕生日を迎えていなければさらに1を引く

実行結果

実行結果は以下の通りです。
このサンプルでは太宰治の年齢と本日生まれた子の年齢を結果表示しています。

太宰治は114才

本日は20231227日です。
本日生まれた人は0才です。

最後に

以上がPythonで生年月日から現在の年齢を計算する関数です。

年齢を取得する機会があれば利用してみてはいかがでしょうか。

コメント

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