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)
実行結果
年、月、日、時、分、秒を指定して日付型の値を取得するよ
# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 年、月、日、時、分、秒を指定して日付型にするよ
targetDate = datetime(2024, 4, 1, 15, 35, 59)
print(targetDate)
実行結果
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")}以降だよ')
実行結果
経過日数を取得するよ
# 日付・時刻を操作するモジュールを読み込むよ
from datetime import datetime
# 現在の日付を表示するよ
today = datetime.now()
# 指定の日付を指定するよ
targetDate = datetime(2024, 2, 1)
# 経過日数を計算するよ
resultDate = (today - targetDate).days
print(f"{resultDate}日経過しました。")
実行結果
日付型かチェックする関数を作るよ
# 日付・時刻を操作するモジュールを読み込むよ
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()))
実行結果
生年月日から年齢を計算する関数を作るよ
# 日付・時刻を操作するモジュールを読み込むよ
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}歳です。")
実行結果