2024-03-17

Pythonで日付や時間を操作するよ

Pythonで日付や時間を操作するよ。
日付の計算などを紹介するね。

現在の日付、時間を取得するよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 現在の日付を表示するよ
today = datetime.now()
print(today)

実行結果

2024-03-17 08:33:25.084094

年、月、日を指定して日付型の値を取得するよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 年、月、日を指定して日付型にするよ
targetDate = datetime(2024, 4, 1)
print(targetDate)

実行結果

2024-04-01 00:00:00

年、月、日、時、分、秒を指定して日付型の値を取得するよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 年、月、日、時、分、秒を指定して日付型にするよ
targetDate = datetime(2024, 4, 1, 15, 35, 59)
print(targetDate)

実行結果

2024-04-01 15:35:59

yyyy/mm/dd形式、yyyy年mm月dd日形式で表示するよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 年、月、日、時、分、秒を指定して日付型にするよ
targetDate = datetime(2024, 4, 1, 15, 35, 59)

# yyyy/MM/dd形式で表示するよ
print(targetDate.strftime("%Y/%m/%d"))
# yyyy/MM/dd hh:mm:ss形式で表示するよ
print(targetDate.strftime("%Y/%m/%d %H:%M:%S"))

# yyyy年/MM月dd日形式で表示するよ
print(targetDate.strftime("%Y年%m月%d日"))
# yyyy年/MM月dd日 hh時mm分ss秒形式で表示するよ
print(targetDate.strftime("%Y年%m月%d日 %H時%M分%S秒"))

実行結果

2024/04/01
2024/04/01 15:35:59
2024年04月01日
2024年04月01日 15時35分59秒

2つの日付を比較して大小チェックするよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 現在の日付を表示するよ
today = datetime.now()
# 年、月、日、時、分、秒を指定して日付型にするよ
targetDate = datetime(2024, 4, 1, 15, 35, 59)

# 日付の大小を比較するよ
if today < targetDate:
    print(f'今日は{targetDate.strftime("%Y/%m/%d")}より前だよ')
else:
    print(f'今日は{targetDate.strftime("%Y/%m/%d")}以降だよ')

実行結果

今日は2024/04/01より前だよ

経過日数を取得するよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 現在の日付を表示するよ
today = datetime.now()
# 指定の日付を指定するよ
targetDate = datetime(2024, 2, 1)
# 経過日数を計算するよ
resultDate = (today - targetDate).days
print(f"{resultDate}日経過しました。")

実行結果

45日経過しました。

日付型かチェックする関数を作るよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 日付型かチェックするよ
def isDate(targetValue):
    try:
        # 引数の型によって処理を分岐するよ
        if isinstance(targetValue, int):
            # 数値(yyyymmdd)を日付型に変換するよ
            resultValue = datetime.strptime(str(targetValue), "%Y%m%d")
            return True
        elif isinstance(targetValue, str):
            # 文字(yyyy/mm/dd)を日付型に変換するよ
            resultValue = datetime.strptime(targetValue, "%Y/%m/%d")
            return True
        elif isinstance(targetValue, datetime):
            # 日付型であればTrueを返すよ
            return True
        else:
            return False
    except ValueError:
        return False

# 数値型
print(isDate(20240229))
# 文字型
print(isDate("2024/02/55"))
# 日付型
print(isDate(datetime.today()))

実行結果

True
False
True

生年月日から年齢を計算する関数を作るよ

# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 生年月日から年齢を計算するよ
def calcAge(birthDay):
    # 生年月日をdatetimeオブジェクトに変換
    birthDay = datetime.strptime(birthDay, "%Y/%m/%d")
    # 現在の日付を表示するよ
    today = datetime.now()
    # 年齢を計算するよ
    return today.year - birthDay.year - ((today.month, today.day) < (birthDay.month, birthDay.day))

# 年齢を計算
age = calcAge("2000/04/01")
# 年齢を表示
print(f"現在の年齢は{age}歳です。")

実行結果

現在の年齢は23歳です。

0 件のコメント: