C#のDateTimeとは?日付と時間の基本を初心者向けにわかりやすく解説
生徒
「C#で今日の年月日や今の時間をプログラムの中で取得したり表示したりする方法ってありますか?」
先生
「C#では、DateTimeという機能を使って、日付や時間を簡単に取得したり計算したりすることができます。」
生徒
「日付や時間を扱うときは、具体的にどう書けばいいんですか?」
先生
「それでは、DateTimeの基本的な使い方を一つずつ見ていきましょう!」
1. DateTimeとは?
C#のDateTime(デイトタイム)とは、プログラムの中でカレンダーや時計のように日付や時間を扱うための基本的な仕組みのことです。プログラミングの世界では、いま何年何月何日であるか、あるいは何時何分何秒であるかという情報は非常に重要です。例えば、ユーザーが会員登録をした日時を記録したり、今日の日にちに合わせて特別なメッセージを表示したりするときに、このDateTimeという機能が使われます。パソコンやスマートフォンの内部時計と連動しているため、正確な現在時刻をいつでも簡単に取得することができます。
2. 現在の日付と時間を取得する方法
プログラムを動かしたその瞬間の正確な現在の日付や時間を知りたいときは、DateTime.Now(ナウ)という特別な命令を使います。これを使うことで、パソコンに設定されている今の年月日と時間を取り出すことができます。取り出した情報は、画面に文字として表示させたり、別の変数というデータを入れる箱に保存したりして活用することが可能です。まずは、いまの正確な日付と時間がどのように画面に映し出されるのか、実際の書き方と動かしたときの様子を確認していきましょう。
using System;
class Program
{
static void Main()
{
DateTime ima = DateTime.Now;
Console.WriteLine("現在のいまと時間は以下の通りです:");
Console.WriteLine(ima);
}
}
上記のプログラムを実行すると、パソコンの画面には次のような結果が表示されます。表示される数字は、プログラムを実行したタイミングの現実の時間によって変わります。
現在のいまと時間は以下の通りです:
2026/07/21 16:22:06
3. 年や月や日をバラバラに取り出す方法
DateTimeを使うと、取得した日付や時間の中から、年だけ、あるいは月だけ、あるいは日だけを個別に取り出すことができます。例えば、「今年の西暦だけを取り出して計算に使いたい」「今何月なのかを判定して季節ごとの処理を変えたい」というときにとても便利です。年を取り出すときはYear(イヤー)、月を取り出すときはMonth(マンス)、日を取り出すときはDay(デイ)というプロパティを使います。プロパティとは、データが持っている詳しい情報を取り出すための小部屋のようなものです。
using System;
class Program
{
static void Main()
{
DateTime kyou = DateTime.Now;
int toshi = kyou.Year;
int tsuki = kyou.Month;
int hi = kyou.Day;
Console.WriteLine("今年は " + toshi + " 年です。");
Console.WriteLine("今月は " + tsuki + " 月です。");
Console.WriteLine("今日は " + hi + " 日です。");
}
}
上記のプログラムを実行すると、それぞれの数字がバラバラに画面に表示されます。
今年は 2026 年です。
今月は 7 月です。
今日は 21 日です。
4. 好きな日付や時間を自分で新しく作る方法
パソコンの今の時間だけでなく、自分自身で決めた特定の日付や時間をプログラムの中で新しく作り出すこともできます。例えば、過去の記念日や、未来の特定の予定日などをプログラムに覚えさせたいときに役立ちます。自分で日時を作るには、新しいものを作るという意味を持つnewという言葉を使って、new DateTime(年, 月, 日)のように指定します。時間を細かく指定することもできますが、まずは基本となる年月日の作り方を確認してみましょう。
using System;
class Program
{
static void Main()
{
DateTime kinenbi = new DateTime(2026, 12, 25);
Console.WriteLine("設定した記念日はこちらです:");
Console.WriteLine(kinenbi);
}
}
上記のプログラムを実行すると、自分で指定した日付がそのまま画面に出力されます。
設定した記念日はこちらです:
2026/12/25 0:00:00
5. 日付の計算や未来・過去を求める方法
C#のDateTimeでは、日付の足し算や引き算を簡単に行うことができます。例えば、「今日から数えてちょうど十日後は何月何日になるか知りたい」や「一週間前の日付を調べたい」というときに非常に便利です。日付を増減させるときは、AddDays(アッドデイズ)やAddMonths(アッドマンス)といった専用の命令を使います。これにより、複雑なカレンダーの計算を自分で一からプログラミングしなくても、コンピュータが自動で正しい日付を計算してくれます。
using System;
class Program
{
static void Main()
{
DateTime ima = DateTime.Now;
DateTime juunichigo = ima.AddDays(10);
DateTime ikkagetsumae = ima.AddMonths(-1);
Console.WriteLine("今日の日付:" + ima.ToShortDateString());
Console.WriteLine("十日後の日付:" + juunichigo.ToShortDateString());
Console.WriteLine("一か月前の日付:" + ikkagetsumae.ToShortDateString());
}
}
上記のプログラムを実行すると、現在の日付を基準にして、十日後や一か月前の日付が計算されて表示されます。
今日の日付:2026/07/21
十日後の日付:2026/07/31
一か月前の日付:2026/06/21
6. 日付の表示形式を自由に変える方法
プログラムで日付を表示するとき、そのままでは時間や秒まで細かく表示されてしまうことがあります。そんなときに、年と月と日だけをすっきりと見せたり、独自の形式で文字に変換したりする方法が用意されています。日付を文字に変換して見栄えを整えるには、ToString(トゥーストリング)という命令のなかに、表示のルールを指定する文字を入れます。これにより、ユーザーにとって見やすい親切な表示形式にカスタマイズすることができるようになります。
using System;
class Program
{
static void Main()
{
DateTime ima = DateTime.Now;
string hyouji1 = ima.ToString("yyyy年MM月dd日");
string hyouji2 = ima.ToString("yyyy/MM/dd HH:mm");
Console.WriteLine(hyouji1);
Console.WriteLine(hyouji2);
}
}
上記のプログラムを実行すると、指定した通りのルールで整えられた日付と時間が画面に映し出されます。
2026年07月21日
2026/07/21 16:22
まとめ
シーシャープにおけるデイトタイムの基本概念から、現在時刻の取得方法、年や月や日を個別に抽出するプロパティの活用、さらには新しい日時のインスタンス生成や加算減算といった日付演算、そしてトーストリングメソッドを用いた柔軟な表示形式のカスタマイズ方法について詳しく学習してきました。プログラミングにおいて日付や時間を正しく扱うことは、ログの記録やスケジュール管理、データの有効期限判定など、極めて重要な役割を持っています。デイトタイムの仕組みを深く理解し、実際の開発現場で適切に実装できるようになることは、初学者から中級者へステップアップするための大きな自信につながります。今後も様々なコードを書きながら、時間操作の技術をしっかりと自分のものにしていきましょう。
生徒
「先生、今回はシーシャープのデイトタイムについてたくさんのことを学びました。特に今の時間を取得したり、未来の日付を計算したりするのがとても便利だと感じました。」
先生
「その通りですね。デイトタイムは実際のアプリケーション開発において必ずと言っていいほど登場する重要な機能です。日付の計算を自分で一から実装しなくても、プロパティやメソッドを使うだけでコンピュータが自動で正確な計算をしてくれるのは素晴らしい利点ですよ。」
生徒
「年や月や日をバラバラに取り出したり、表示の仕方を自由に変えたりできるのも魅力的でした。実際のシステムでもユーザーが見やすいように整えるときに絶対に使いたいなと思いました。」
先生
「素晴らしい着眼点ですね。トゥーストリングメソッドを使ってフォーマットを指定することで、画面の見た目をすっきりと保つことができます。これからも実際に手を動かしてプログラムを書きながら、さらに高度な使い方をマスターしていきましょう!」