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 します。
ロジックを言葉で整理
- 今日の日付を取得する
- 生年月日を DateTime として受け取る
- 年齢 = 今日の年 − 生まれた年
- 誕生日がまだ来ていなければ −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. メソッドは「名前のついた処理のかたまり」
CalculateAgePrintAge
この2つを作ることで、 「年齢計算」と「表示」がコード上で見える化される。
3. Main は“流れ”だけを書く
- 入力
- 変換
- 計算
- 表示
という流れを Main に書き、 細かい処理はメソッドに任せる。
4. 基本文法が自然に身につく
- 変数
- 型
- if 文
- メソッド
- DateTime
これらは後のコレクション・LINQ・ファイル操作の土台になる。
次のステップ
2日目では 複数人の生年月日を扱う → List<Person> に格納する → LINQで集計する という「オブジェクト指向 × コレクション × LINQ」へ進みます。
続きはこちら 年齢計算 2日目:複数人の年齢を扱う

