Day14 前半のゴール
Day14 前半では、プログラムで「日時を扱うための基礎」を身につけます。 日時処理は、年齢計算・締め切り管理・カウントダウン・ログ記録など、 あらゆるアプリケーションで必ず必要になる重要な機能です。
今回扱う内容は次の二つです。 DateTime TimeSpan
初心者でも自然に理解できるよう、例題を交えながら丁寧に解説していきます。
DateTime を理解する
DateTime は「日付と時刻を表す型」です
DateTime は、現在時刻・誕生日・締め切りなど、 あらゆる日時を扱うための基本型です。
現在の日時を取得するには次のように書きます。
DateTime now = DateTime.Now;
Console.WriteLine(now);
C#このコードは「今この瞬間の日時」を取得します。
特定の日付を作る
誕生日やイベントの日付など、特定の日付を扱いたい場合は次のようにします。
DateTime birthday = new DateTime(1990, 5, 20);
Console.WriteLine(birthday);
C#年・月・日を指定して DateTime を作成できます。
深掘りポイント:DateTime は「計算できる」
DateTime はただの日時ではなく、 「計算できる日時」です。
例:1日後を求める
DateTime tomorrow = now.AddDays(1);
C#例:1時間後を求める
DateTime nextHour = now.AddHours(1);
C#このように、Add 系のメソッドを使うことで、 日時を自由に計算できます。
TimeSpan を理解する
TimeSpan は「時間の差」を表す型です
TimeSpan は、 「2つの日時の差」 「残り時間」 「経過時間」 などを扱うための型です。
例:2つの日時の差を求める
DateTime start = new DateTime(2024, 1, 1);
DateTime end = new DateTime(2024, 1, 10);
TimeSpan diff = end - start;
Console.WriteLine(diff.Days); // 9
C#end – start の結果が TimeSpan になります。
TimeSpan を自分で作る
TimeSpan span = new TimeSpan(1, 30, 0); // 1時間30分
Console.WriteLine(span.TotalMinutes); // 90
C#TimeSpan は「時間の長さ」を表すため、 カウントダウンやタイマーでよく使われます。
深掘りポイント:DateTime と TimeSpan の関係
DateTime は「時刻そのもの」 TimeSpan は「時刻の差」
この関係を理解すると、 年齢計算やカウントダウンが自然に書けるようになります。
年齢計算の基礎を理解する
誕生日から年齢を計算する流れ
年齢計算は次の流れで行います。
現在の日付を取得する 誕生日との差を求める 年数に変換する
例:
DateTime birthday = new DateTime(1990, 5, 20);
DateTime today = DateTime.Now;
int age = today.Year - birthday.Year;
if (today < birthday.AddYears(age))
{
age--;
}
Console.WriteLine("年齢: " + age);
C#深掘りポイント
単純に「年の差」だけでは正しい年齢になりません。 誕生日を迎えているかどうかを判定する必要があります。
この「AddYears を使った誕生日判定」が年齢計算の重要ポイントです。
カウントダウンの基礎を理解する
未来の日付までの残り時間を求める
カウントダウンは次の流れで行います。
未来の日付を作る 現在との差を TimeSpan で求める 残り日数・時間・分を表示する
例:
DateTime eventDay = new DateTime(2024, 12, 31);
DateTime now = DateTime.Now;
TimeSpan remaining = eventDay - now;
Console.WriteLine("残り日数: " + remaining.Days);
Console.WriteLine("残り時間: " + remaining.Hours);
Console.WriteLine("残り分: " + remaining.Minutes);
C#深掘りポイント
TimeSpan は「差」を表すため、 カウントダウンのような「残り時間」を扱う場面で非常に強力です。
Day14 前半のまとめ
Day14 前半では、日時処理の基礎を学びました。
DateTime → 日付と時刻 TimeSpan → 時刻の差
これらを使うことで、 年齢計算 カウントダウン 締め切り管理 ログのタイムスタンプ
など、実用的な日時処理ができるようになります。
後半では、これらを使って 年齢計算 カウントダウン といった具体的なプログラムを実際に組み立てながら、 日時処理の応用力を身につけていきます。
