C# | ゼロからはじめるプログラミング、30日で基礎を学ぶC#:基本機能を身に付ける - Day14:日時処理

C# 30日で身につけるC#
スポンサーリンク
スポンサーリンク

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 → 時刻の差

これらを使うことで、 年齢計算 カウントダウン 締め切り管理 ログのタイムスタンプ

など、実用的な日時処理ができるようになります。

後半では、これらを使って 年齢計算 カウントダウン といった具体的なプログラムを実際に組み立てながら、 日時処理の応用力を身につけていきます。

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