現在の見出し:2.1節:日数概算計算
見出し一覧
- 2.1節:日数概算計算
- - 基本的な日数差計算の実装
- - 計算結果の詳細表示の追加
【PR】『Python』を学べる企業・個人向けのプログラミングコース
基本的な日数差計算の実装
第2章2.1節では、算術演算子算術演算子は数値の計算を行うための記号や命令です。と条件分岐条件分岐はプログラム内で指定した条件によって処理の分岐を行う制御構造です。を使い、「基本的な日数差計算」と「計算結果の詳細表示」を実装していきます。現在のコードでは日付の入力と検証までが完了していますが、実際の日付計算機能がありません。日付計算ツールとして実用的にするためには、2つの日付間の日数差を計算する機能が必要です。
日数差計算の実装では、開始日と終了日の2つの日付を入力し、算術演算子を使用して年差、月差、日差をそれぞれ計算します。概算式「年差×365 + 月差×30 + 日差」を使用することで、簡易的な日数差を求めることが可能です。この計算方法は厳密ではありませんが、基本的な算術演算子の学習には適しており、後の章でより正確な計算方法を学習する基盤となります。
# コード
print("=== 日付データ入力ツール ===")
year = int(input("年を入力してください: "))
month = int(input("月を入力してください: "))
day = int(input("日を入力してください: "))
print(f"入力された日付データ: {year}年{month}月{day}日")
print("\n=== 日付表示フォーマット ===")
print(f"標準形式: {year}/{month:02d}/{day:02d}")
print(f"ハイフン形式: {year}-{month:02d}-{day:02d}")
print(f"日本語形式: {year}年{month:02d}月{day:02d}日")
print(f"アメリカ形式: {month:02d}/{day:02d}/{year}")
print("\n=== 入力値検証 ===")
month_valid = month >= 1 and month <= 12
day_valid = day >= 1 and day <= 31
all_valid = month_valid and day_valid
if all_valid:
print(f"✓ 検証結果: 正常な日付です")
print(f"✓ 検証済み日付: {year}/{month:02d}/{day:02d}")
print(f"✓ この日付は日付計算処理で使用できます")
print("\n=== 日数差計算機能 ===")
target_year = int(input("比較対象の年を入力してください: "))
target_month = int(input("比較対象の月を入力してください: "))
target_day = int(input("比較対象の日を入力してください: "))
year_diff = target_year - year
month_diff = target_month - month
day_diff = target_day - day
total_days = year_diff * 365 + month_diff * 30 + day_diff
print(f"\n=== 日数差計算結果 ===")
print(f"開始日: {year}/{month:02d}/{day:02d}")
print(f"終了日: {target_year}/{target_month:02d}/{target_day:02d}")
print(f"概算日数差: {total_days}日")
else:
print(f"✗ 検証結果: 無効な日付が入力されました")
print(f"✗ 入力値: {year}年{month}月{day}日")
if not month_valid and not day_valid:
print(f"✗ 複数エラー: 月と日の両方が無効です")
print(f" - 月: {month} → 1から12の範囲で入力してください")
print(f" - 日: {day} → 1から31の範囲で入力してください")
elif not month_valid:
print(f"✗ 月のエラー: {month}は無効です")
print(f" → 1から12の範囲で入力してください")
elif not day_valid:
print(f"✗ 日のエラー: {day}は無効です")
print(f" → 1から31の範囲で入力してください")
print(f"✗ 日付計算処理を実行できません")
# 実行結果
=== 日付データ入力ツール ===
年を入力してください: 2025
月を入力してください: 1
日を入力してください: 15
入力された日付データ: 2025年1月15日
=== 日付表示フォーマット ===
標準形式: 2025/01/15
ハイフン形式: 2025-01-15
日本語形式: 2025年01月15日
アメリカ形式: 01/15/2025
=== 入力値検証 ===
✓ 検証結果: 正常な日付です
✓ 検証済み日付: 2025/01/15
✓ この日付は日付計算処理で使用できます
=== 日数差計算機能 ===
比較対象の年を入力してください: 2025
比較対象の月を入力してください: 3
比較対象の日を入力してください: 20
=== 日数差計算結果 ===
開始日: 2025/01/15
終了日: 2025/03/20
概算日数差: 65日
行数 | 種別 | コード | 解説 |
---|---|---|---|
23行目 | 新規 | print("\n=== 日数差計算機能 ===") |
日数差計算機能のセクション開始を示すタイトルを表示 |
24行目 | 新規 | target_year = int(input("比較対象の年を入力してください: ")) |
input()関数関数は一定の処理をまとめたプログラムの塊です。で比較対象の年を文字列文字列は文字の並びを表現するデータ型で、テキストデータを扱うための基本的な構造として広く使用されています。として入力し、int()関数で整数型に変換してtarget_year変数変数はデータを一時的に記憶しておく場所です。に代入代入は変数に値を割り当てる操作です。 |
25行目 | 新規 | target_month = int(input("比較対象の月を入力してください: ")) |
input()関数で比較対象の月を文字列として入力し、int()関数で整数型に変換してtarget_month変数に代入 |
26行目 | 新規 | target_day = int(input("比較対象の日を入力してください: ")) |
input()関数で比較対象の日を文字列として入力し、int()関数で整数型に変換してtarget_day変数に代入 |
28行目 | 新規 | year_diff = target_year - year |
算術演算子の減算を使用して比較対象年から開始年を引いた年差を計算し、year_diff変数に代入 |
29行目 | 新規 | month_diff = target_month - month |
算術演算子の減算を使用して比較対象月から開始月を引いた月差を計算し、month_diff変数に代入 |
30行目 | 新規 | day_diff = target_day - day |
算術演算子の減算を使用して比較対象日から開始日を引いた日差を計算し、day_diff変数に代入 |
32行目 | 新規 | total_days = year_diff * 365 + month_diff * 30 + day_diff |
算術演算子の乗算と加算を使用して概算式「年差×365 + 月差×30 + 日差」で総日数差を計算 |
34行目 | 新規 | print(f"\n=== 日数差計算結果 ===") |
日数差計算結果の表示セクション開始を示すタイトルを表示 |
35行目 | 新規 | print(f"開始日: {year}/{month:02d}/{day:02d}") |
f-stringと書式指定:02dを使用して開始日を統一フォーマットで表示 |
36行目 | 新規 | print(f"終了日: {target_year}/{target_month:02d}/{target_day:02d}") |
f-stringと書式指定:02dを使用して終了日を統一フォーマットで表示 |
37行目 | 新規 | print(f"概算日数差: {total_days}日") |
f-stringを使用して計算された概算日数差を「○○日」の形式で表示 |