ログアウト中 ログイン

学習パッケージを選択

【Python】日付計算ツール開発講座 第2章2.1節「日数概算計算」




現在の見出し: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を使用して計算された概算日数差を「○○日」の形式で表示
計算結果の詳細表示の追加

第2章2.1節「計算結果の詳細表示の追加」の続きを見る


すべてのカリキュラムを無料登録で学ぶ

プログラミング・マーケティング・AI活用方法を
今すぐ無料登録すると、全てのコンテンツが視聴可能になります。