C# | 1 日 60 分 × 7 日アプリ学習:C#基礎・オブジェクト指向 BMI計算機編

Web APP C#
スポンサーリンク
スポンサーリンク

1日目のゴールと全体像

年齢計算アプリ 1日目のテーマは 「DateTime を使って“生年月日から年齢を計算する”基本ロジックを理解し、シンプルなコンソールアプリとして形にすること」 です。

この日は C# の中でも特に重要な

  • DateTime(日時を扱う型)
  • TimeSpan(期間を扱う型)
  • メソッド化(処理の部品化)
  • 基本文法(変数・型・Console入出力)

を、年齢計算という身近な題材で自然に身につけます。

DateTime を使うと何ができるのか

DateTime の役割

DateTime は 「日付と時刻を表すための型」 です。

例:

DateTime birthday = new DateTime(1990, 5, 20); // 1990年5月20日
DateTime today = DateTime.Now;                 // 今日の日付
C#

DateTime の強み

  • 年・月・日を簡単に扱える
  • 差分(年齢など)を計算できる
  • 書式を自由に変えられる

年齢計算は DateTime の最初の練習として最適です。

年齢計算の考え方(最重要パート)

年齢の基本式

年齢は 「今日の年 − 生まれた年」 で求められます。

ただし、誕生日を迎えていない場合は −1 します。

ロジックを言葉で整理

  1. 今日の日付を取得する
  2. 生年月日を DateTime として受け取る
  3. 年齢 = 今日の年 − 生まれた年
  4. 誕生日がまだ来ていなければ −1

これをそのままメソッドにします。

年齢計算メソッドを作る

設計

  • メソッド名:CalculateAge
  • 引数:生年月日(DateTime)
  • 戻り値:年齢(int)

コード(丁寧なコメント付き)

// 年齢を計算するメソッド
static int CalculateAge(DateTime birthday)
{
    DateTime today = DateTime.Today; // 今日の日付(時刻なし)

    int age = today.Year - birthday.Year;

    // 誕生日を迎えていない場合は -1
    if (today.Month < birthday.Month ||
        (today.Month == birthday.Month && today.Day < birthday.Day))
    {
        age--;
    }

    return age;
}
C#

深掘りポイント

  • DateTime.Today は「今日の日付(時刻なし)」
  • 年齢計算は「誕生日を迎えたかどうか」が重要
  • if の条件は「誕生日がまだ来ていないか」を判定している

ユーザー入力を DateTime に変換する

コンソールアプリでは、 Console.ReadLine() で文字列として入力を受け取り、 DateTime.Parse() で DateTime に変換します。

Console.Write("生年月日を入力してください (例: 1990/05/20): ");
string input = Console.ReadLine();

DateTime birthday = DateTime.Parse(input);
C#

深掘りポイント

  • 入力は必ず「文字列」で入ってくる
  • DateTime.Parse() で日付に変換できる
  • 日本のユーザーは「YYYY/MM/DD」形式が直感的

年齢を表示するメソッドを作る

static void PrintAge(DateTime birthday)
{
    int age = CalculateAge(birthday);
    Console.WriteLine($"あなたの年齢は {age} 歳です。");
}
C#

1日目の完成コード(シンプル年齢計算アプリ)

using System;

class AgeApp
{
    static void Main(string[] args)
    {
        // 生年月日の入力
        Console.Write("生年月日を入力してください (例: 1990/05/20): ");
        string input = Console.ReadLine();

        // 文字列 → DateTime に変換
        DateTime birthday = DateTime.Parse(input);

        // 年齢を計算して表示
        PrintAge(birthday);
    }

    // 年齢計算メソッド
    static int CalculateAge(DateTime birthday)
    {
        DateTime today = DateTime.Today;

        int age = today.Year - birthday.Year;

        // 誕生日を迎えていない場合は -1
        if (today.Month < birthday.Month ||
            (today.Month == birthday.Month && today.Day < birthday.Day))
        {
            age--;
        }

        return age;
    }

    // 結果表示メソッド
    static void PrintAge(DateTime birthday)
    {
        int age = CalculateAge(birthday);
        Console.WriteLine($"あなたの年齢は {age} 歳です。");
    }
}
C#

1日目で本当に掴んでほしいこと

1. DateTime は「日付を扱うための標準ツール」

年齢計算は DateTime の最初の練習として最適です。

2. メソッドは「名前のついた処理のかたまり」

  • CalculateAge
  • PrintAge

この2つを作ることで、 「年齢計算」と「表示」がコード上で見える化される。

3. Main は“流れ”だけを書く

  • 入力
  • 変換
  • 計算
  • 表示

という流れを Main に書き、 細かい処理はメソッドに任せる。

4. 基本文法が自然に身につく

  • 変数
  • if 文
  • メソッド
  • DateTime

これらは後のコレクション・LINQ・ファイル操作の土台になる。

次のステップ

2日目では 複数人の生年月日を扱う → List<Person> に格納する → LINQで集計する という「オブジェクト指向 × コレクション × LINQ」へ進みます。

続きはこちら 年齢計算 2日目:複数人の年齢を扱う

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