カテゴリ: VB.NET 更新日: 2026/03/27

VB.NETのDateTime型を完全マスター!日付と時間の操作を初心者向けに解説

VB.NETのDateTime型の基本と使い方
VB.NETのDateTime型の基本と使い方

先生と生徒の会話形式で理解しよう

生徒

「VB.NETで現在の日時を表示したり、賞味期限の計算をしたりする方法はありますか?」

先生

「それなら、DateTime型という便利な仕組みを使えば簡単にできますよ。」

生徒

「型って難しそうですが、パソコンをあまり触ったことがない私でも大丈夫でしょうか?」

先生

「大丈夫です!カレンダーや時計を扱うような感覚で使えるので、基本から一つずつ見ていきましょう!」

1. DateTime型とは?日付と時間を扱う専用の箱

1. DateTime型とは?日付と時間を扱う専用の箱
1. DateTime型とは?日付と時間を扱う専用の箱

VB.NETでプログラミングをする際、日付(年月日)や時間(時分秒)を扱うために用意されている専用の情報の種類をDateTime(デートタイム)型と呼びます。プログラミングにおける「型」とは、データを入れるための「専用の箱」のようなものだと考えてください。

例えば、数字を入れる箱や文字を入れる箱がありますが、日付を入れるには日付専用の箱が必要です。この箱を使うことで、単なる数字の羅列ではなく「今日は何曜日か?」「今から一週間後はいつか?」といった、人間にとって意味のある計算をコンピュータにさせることができるようになります。ファイル操作をする際も、ファイルが作られた日時を記録したり確認したりする場面で非常に多く使われます。

2. 現在の日時を取得してみよう!NowとTodayの違い

2. 現在の日時を取得してみよう!NowとTodayの違い
2. 現在の日時を取得してみよう!NowとTodayの違い

まずは、たった今この瞬間の時間を知る方法を学びましょう。VB.NETでは DateTime.Now と書くだけで、パソコンの内蔵時計から現在の日時を取得できます。これは「今が何時何分何秒か」まで知りたいときに使います。

一方で、時間は不要で「今日が何月何日か」という日付の情報だけが欲しいときは DateTime.Today を使います。このように、目的に合わせて使い分けるのがコツです。以下のコードで、実際にどのように取得できるか見てみましょう。実行すると、その瞬間の日時に基づいた結果が表示されます。


Module Module1
    Sub Main()
        ' 現在の年月日と時間をすべて取得
        Dim genzai As DateTime = DateTime.Now
        ' 今日が何日かだけを取得
        Dim kyou As DateTime = DateTime.Today

        Console.WriteLine("今の瞬間: " & genzai.ToString())
        Console.WriteLine("今日の日付: " & kyou.ToString())
    End Sub
End Module

今の瞬間: 2026/03/18 13:48:44
今日の日付: 2026/03/18 0:00:00

3. 特定の日付を作ってみよう!手動で日付を指定する方法

3. 特定の日付を作ってみよう!手動で日付を指定する方法
3. 特定の日付を作ってみよう!手動で日付を指定する方法

今この瞬間ではなく、「2026年1月1日」といった過去や未来の特定の日付をプログラムの中で扱いたいこともあります。その場合は、新しいDateTime型の箱を作り、中身を指定してあげます。これをインスタンスの作成と呼ぶこともありますが、今は「新しい日付データを作る」と思えば十分です。

書き方は New DateTime(年, 月, 日) という形式になります。もし時間まで指定したい場合は、後ろに続けて「時, 分, 秒」の数字をコンマで区切って入れます。これにより、予約システムや日記アプリのような、特定の日付を扱うプログラムが作れるようになります。


Module Module1
    Sub Main()
        ' 2026年5月10日という日付を作る
        Dim tanjoubi As New DateTime(2026, 5, 10)
        ' 時間まで細かく指定する場合(午後3時30分)
        Dim yoyaku As New DateTime(2026, 5, 10, 15, 30, 0)

        Console.WriteLine("設定した日: " & tanjoubi.ToLongDateString())
        Console.WriteLine("予約の時間: " & yoyaku.ToString())
    End Sub
End Module

設定した日: 2026年5月10日
予約の時間: 2026/05/10 15:30:00

4. 日付の計算!未来や過去の日を導き出す方法

4. 日付の計算!未来や過去の日を導き出す方法
4. 日付の計算!未来や過去の日を導き出す方法

DateTime型の素晴らしいところは、算数のような計算ができる点です。例えば、「今日から10日後」や「昨日の日付」を知りたいときに、自分でカレンダーをめくるような複雑な計算式を書く必要はありません。VB.NETには AddDays(アド・デイズ)という便利な機能が備わっています。

「Add」は「加える」、「Days」は「日」を意味します。つまり、日にちを加えるという命令です。他にも AddMonths(月を加える)や AddYears(年を加える)などがあり、マイナスの数字を入れれば過去に遡ることもできます。これを使えば、有効期限のチェックなども一瞬で行えます。


Module Module1
    Sub Main()
        Dim kyou As DateTime = DateTime.Today
        ' 7日後(一週間後)を計算
        Dim raishuu As DateTime = kyou.AddDays(7)
        ' 1ヶ月前を計算
        Dim sengetsu As DateTime = kyou.AddMonths(-1)

        Console.WriteLine("今日は: " & kyou.ToShortDateString())
        Console.WriteLine("一週間後は: " & raishuu.ToShortDateString())
        Console.WriteLine("一ヶ月前は: " & sengetsu.ToShortDateString())
    End Sub
End Module

今日は: 2026/03/18
一週間後は: 2026/03/25
一ヶ月前は: 2026/02/18

5. 日付の表示形式を自由に変える!ToStringの魔法

5. 日付の表示形式を自由に変える!ToStringの魔法
5. 日付の表示形式を自由に変える!ToStringの魔法

コンピュータの中では日付は正確に管理されていますが、画面に表示するときは人間に分かりやすい形に変えたいものです。「2026-03-18」と表示したいときもあれば、「令和8年3月18日」や「03/18」と短くしたいときもあります。これを実現するのが ToString(トゥ・ストリング)メソッドです。

カッコの中に 書式指定文字列 という特殊な文字を入れることで、見た目を自由自在に変更できます。例えば「yyyy」は年、「MM」は月、「dd」は日を表します。大文字と小文字で意味が変わる(例えば「mm」は分を表す)ので、そこだけ注意が必要ですが、慣れると非常に強力な武器になります。


Module Module1
    Sub Main()
        Dim ima As DateTime = DateTime.Now
        
        ' yyyy/MM/dd 形式で表示
        Console.WriteLine("形式1: " & ima.ToString("yyyy/MM/dd"))
        ' 日本語の曜日まで入れる形式
        Console.WriteLine("形式2: " & ima.ToString("yyyy年MM月dd日(ddd)"))
        ' 時間だけを表示
        Console.WriteLine("形式3: " & ima.ToString("HH時mm分ss秒"))
    End Sub
End Module

形式1: 2026/03/18
形式2: 2026年03月18日(水)
形式3: 13時48分44秒

6. 日付の一部だけを取り出す!年・月・日の個別取得

6. 日付の一部だけを取り出す!年・月・日の個別取得
6. 日付の一部だけを取り出す!年・月・日の個別取得

「今月は何月か?」だけを知りたい、あるいは「今年の年数を使ってファイル名を作りたい」という場合があります。そんなときは、DateTime型の箱に備わっている プロパティ という属性を使います。プロパティとは、そのデータが持っている「特徴」のようなものです。

.Year(年)、.Month(月)、.Day(日)と書くことで、必要な数字だけを抜き出すことができます。さらに .DayOfWeek を使えば、その日が何曜日かという情報も取得可能です。これらを組み合わせることで、特定の月のデータだけを集計するといった複雑な処理も可能になります。

7. 日付の大きさを比べる!If文との組み合わせ

7. 日付の大きさを比べる!If文との組み合わせ
7. 日付の大きさを比べる!If文との組み合わせ

プログラミングでよくあるのが、「期限が過ぎているかどうか」の判定です。DateTime型は、普通の数字と同じように不等号(>や<)を使って大きさを比べることができます。新しい日付ほど「大きい」と判断されます。

例えば、「今日の正午」と「今の時間」を比べて、過ぎていれば「こんにちは」、過ぎていなければ「おはよう」と表示するような分岐処理が作れます。このようにDateTime型は If文 と非常に相性が良く、実用的なアプリケーションを作るためには欠かせない知識となります。条件分岐を使いこなして、賢いプログラムを目指しましょう。

8. エラーを防ぐ!日付の妥当性チェック

8. エラーを防ぐ!日付の妥当性チェック
8. エラーを防ぐ!日付の妥当性チェック

最後に、少し発展的なお話ですが、大切な注意点があります。プログラムの中でユーザーが入力した文字を日付に変換しようとするとき、もし「2月30日」や「あいうえお」といった、日付として正しくないデータが入ってくると、プログラムはエラーで止まってしまいます。

これを防ぐためには、変換する前に「これは本当に日付として正しいかな?」と確認する DateTime.TryParse という仕組みを使います。未経験の方は最初は難しいと感じるかもしれませんが、エラーを出さずに安全に動くプログラムを作るためにはとても重要です。まずは「日付には正しい範囲がある」ということだけ覚えておきましょう。

カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NET MVCで学ぶセッションと認証の仕組みをやさしく解説!初心者でも安心して理解できる入門ガイド
New2
VB.NET
VB.NETで名前空間を整理する方法を完全ガイド!初心者でもわかるNamespaceの基本
New3
ASP.NET
ASP.NET CoreのCookie認証を完全ガイド!初心者でもわかるログインの仕組み
New4
VB.NET
VB.NETでStaticクラスを作る方法を完全ガイド!初心者でもわかるクラスとオブジェクト指向入門
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのインストール方法まとめ!Visual Studioを使った環境構築手順
No.2
Java&Spring記事人気No2
VB.NET
VB.NETプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.3
Java&Spring記事人気No3
VB.NET
VB.NETのDateTime型を完全マスター!日付と時間の操作を初心者向けに解説
No.4
Java&Spring記事人気No4
ASP.NET
ASP.NETを安定稼働させるためのIISアプリケーションプール設定完全ガイド【初心者向け】
No.5
Java&Spring記事人気No5
VB.NET
VB.NETで日付を文字列に変換!ToStringやFormatの使い方を徹底解説
No.6
Java&Spring記事人気No6
VB.NET
VB.NETの構文ルールまとめ!インデント・改行・予約語など初心者が最初に覚えるべきポイント
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのコンストラクタと初期化処理の書き方を初心者向けに解説
No.8
Java&Spring記事人気No8
ASP.NET
ASP.NET WebFormsとは?基本概念と仕組みを初心者向けにやさしく解説