カテゴリ: VB.NET 更新日: 2026/04/05

VB.NETでうるう年を判定する方法を解説!初心者でもわかるIsLeapYearの使い方

VB.NETでうるう年を判定する方法(DateTime.IsLeapYear)
VB.NETでうるう年を判定する方法(DateTime.IsLeapYear)

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

生徒

「先生、カレンダーを作っているのですが、2月が29日まである年と28日まである年をどうやって見分ければいいですか?」

先生

「それは『うるう年』のことですね。VB.NETには、指定した年がうるう年かどうかを一瞬で判定する便利な道具がありますよ。」

生徒

「自分で計算しなくてもいいんですか?難しそうな数式が必要かと思っていました。」

先生

「はい、DateTime.IsLeapYearという命令を使えば、初心者の方でも簡単に判別できます。さっそく使い方を見ていきましょう!」

1. うるう年判定の基本「IsLeapYear」とは?

1. うるう年判定の基本「IsLeapYear」とは?
1. うるう年判定の基本「IsLeapYear」とは?

プログラミング言語のVB.NETで、ある特定の年が「うるう年」であるか、あるいは「平年(普通の年)」であるかを調べるには、DateTime.IsLeapYear(デートタイム・イズリープイヤー)という機能を使います。この名前を分解してみると、DateTimeは日付や時間を扱うグループ、Isは「~ですか?」という質問、LeapYearは「うるう年」という意味です。つまり、「この年はうるう年ですか?」とパソコンに優しく問いかけるような命令なのです。

通常、うるう年を計算で求めようとすると、「4で割り切れるけれど100で割り切れない、でも400で割り切れる場合はうるう年で……」という複雑なルールを考えなければなりません。しかし、VB.NETを使えば、そのような難しい数式を覚える必要はありません。たった一行の命令を書くだけで、パソコンが裏側で自動的に計算して、正しい答えを教えてくれます。プログラミング未経験の方にとって、これほど心強い味方はありませんね。

2. 真(True)と偽(False)という考え方

2. 真(True)と偽(False)という考え方
2. 真(True)と偽(False)という考え方

VB.NETでうるう年を判定すると、答えは「はい」か「いいえ」の二択で返ってきます。プログラミングの世界では、この「はい」のことを真(True:トゥルー)、「いいえ」のことを偽(False:フォルス)と呼びます。例えば、2024年を判定させれば「True」が返ってきますし、2025年なら「False」が返ってきます。このように二つの状態だけで表されるデータのことを、専門用語で「Boolean(ブーリアン)型」や「論理型」と言います。

パソコンを触ったことがない方には少し聞き慣れない言葉かもしれませんが、電球のスイッチが「オン」か「オフ」か、という違いと同じだと考えてください。この「True」か「False」かによって、その後の処理を分けるのがプログラミングの基本になります。うるう年判定はこの基礎を学ぶのにぴったりの題材です。

3. 特定の年を判定するシンプルなコード

3. 特定の年を判定するシンプルなコード
3. 特定の年を判定するシンプルなコード

まずは、特定の数字(年)を指定して、それがうるう年かどうかを判定する一番簡単なプログラムを書いてみましょう。ここでは、2024年がうるう年かどうかを判定させてみます。以下のコードをエディタ(プログラムを書くためのメモ帳のようなもの)に打ち込んでみてください。


' 2024年がうるう年かどうかを調べる
Dim nendo As Integer = 2024
Dim kekka As Boolean = DateTime.IsLeapYear(nendo)

' 結果を画面に表示する
Console.WriteLine(nendo & "年はうるう年ですか? : " & kekka)

実行すると、画面には以下のように表示されます。


2024年はうるう年ですか? : True

ここで出てくるDim(ディム)というのは、「これから新しい箱(変数)を使いますよ」という準備の合図です。Integer(インテジャー)は整数を入れる箱、Boolean(ブーリアン)は先ほど説明した「True」か「False」を入れる箱の種類を指しています。このように、データの種類に合わせた箱を用意するのがVB.NETの決まりごとです。

4. If文を使って日本語で結果を表示しよう

4. If文を使って日本語で結果を表示しよう
4. If文を使って日本語で結果を表示しよう

先ほどの例では結果が英語(True)で表示されましたが、これでは少し不親切ですよね。そこで、「もしTrueなら『うるう年です』と表示し、そうでなければ『平年です』と表示する」という風に、If文(イフ文)を使って処理を分けてみましょう。If文は「もし~だったら」という条件分岐を作るための非常に重要な命令です。


' 変数に年を代入
Dim checkYear As Integer = 2025

' もし、うるう年だったら
If DateTime.IsLeapYear(checkYear) Then
    Console.WriteLine(checkYear & "年は、2月29日がある「うるう年」です!")
Else
    ' そうでなければ(うるう年でない場合)
    Console.WriteLine(checkYear & "年は、2月28日までしかない「平年」です。")
End If

実行結果は以下のようになります。


2025年は、2月28日までしかない「平年」です。

Else(エルス)という言葉は「それ以外」という意味です。If文を使うことで、プログラムがまるで意思を持っているかのように、状況に合わせて言葉を選んでくれるようになります。これがプログラミングの醍醐味であり、便利なアプリケーションを作るための第一歩となります。

5. 今日の日付から今年のうるう年を判定する

5. 今日の日付から今年のうるう年を判定する
5. 今日の日付から今年のうるう年を判定する

次に、あらかじめ数字を決めておくのではなく、パソコンの内蔵時計から「今日が何年か」を自動的に取得して、今年がうるう年かどうかを判定させてみましょう。これにはDateTime.Nowという命令を使います。これを使うと、わざわざ自分で「今は2026年だ」と教えなくても、パソコンが勝手に現在の年を調べてくれます。


' 現在の時刻情報を取得する
Dim ima As DateTime = DateTime.Now

' 今年(ima.Year)がうるう年か判定する
If DateTime.IsLeapYear(ima.Year) Then
    Console.WriteLine("今年はうるう年なので、一日お得ですね!")
Else
    Console.WriteLine("今年は平年です。カレンダー通りですね。")
End If

実行結果(2026年の場合)は以下のようになります。


今年は平年です。カレンダー通りですね。

ima.Yearのように、点(ドット)でつなぐことで、日付の情報の中から「年」の部分だけを取り出すことができます。この書き方を覚えると、月や日、時間も自由自在に取り出せるようになりますよ。パソコンのシステムと連携する、とても実用的なコードです。

6. 複数の年をまとめてチェックする方法

6. 複数の年をまとめてチェックする方法
6. 複数の年をまとめてチェックする方法

一つ一つの年を調べるだけでなく、例えば「2020年から2030年まで」のように、範囲を決めてまとめて調べたいこともありますよね。そんなときは、繰り返し処理を行うFor(フォー)文という命令を組み合わせます。これを使えば、面倒な繰り返し作業もパソコンが一瞬で終わらせてくれます。人間なら10回書くところを、たった数行で済ませることができるのです。


' 2020年から2025年までを順番に調べる
For targetYear As Integer = 2020 To 2025
    If DateTime.IsLeapYear(targetYear) Then
        Console.WriteLine(targetYear & "年:うるう年です <i class="bi bi-star-fill"></i>")
    Else
        Console.WriteLine(targetYear & "年:平年です")
    End If
Next

実行結果は以下のようになります。


2020年:うるう年です
2021年:平年です
2022年:平年です
2023年:平年です
2024年:うるう年です
2025年:平年です

For ... To ...という書き方は、「~から~まで繰り返す」という意味です。このコードを実行すると、プログラムが自動的に数字を一つずつ増やしながら判定を繰り返してくれます。大量のデータを扱う際に非常に強力な武器となるテクニックです。

7. 入力された年が正しいかチェックする重要性

7. 入力された年が正しいかチェックする重要性
7. 入力された年が正しいかチェックする重要性

ここまではあらかじめ用意した数字を使ってきましたが、実際にアプリを作るときは、利用者がキーボードから数字を入力することもあります。しかし、利用者が必ずしも「2024」のような正しい年を入力してくれるとは限りません。文字を入力してしまったり、マイナスの数字を入れたりすることもあるでしょう。

VB.NETのIsLeapYearは、1から9999までの範囲の数字を受け付けることができます。この範囲外の数字を入れると、プログラムがびっくりして止まってしまう(エラーと言います)ことがあります。そのため、実際に使うときは「正しい年が入力されているかな?」と確認するステップを入れるのが、プロ級のプログラマーへの近道です。まずは基本をしっかり押さえて、慣れてきたらそういった安全対策も学んでいきましょう。

8. 日付操作をマスターして便利なアプリを作ろう

8. 日付操作をマスターして便利なアプリを作ろう
8. 日付操作をマスターして便利なアプリを作ろう

うるう年の判定ができるようになると、カレンダーアプリだけでなく、日数を計算するソフトや、お誕生日のカウントダウンツールなど、さまざまなプログラムが作れるようになります。VB.NETには今回紹介したIsLeapYear以外にも、日付を足したり引いたりする機能がたくさん備わっています。

プログラミングは、最初は難しく感じるかもしれませんが、一つ一つの命令は「これをやってほしい」というお願いの集まりに過ぎません。まずは今回紹介したコードをコピーして、自分の手で動かしてみることから始めてみてください。画面に自分の思った通りの結果が表示されたときの感動は、何物にも代えがたいものです。ぜひ、VB.NETでの日付操作を楽しみながら学んでいってくださいね!

カテゴリの一覧へ
新着記事
New1
VB.NET
VB.NETの構文ルールまとめ!インデント・改行・予約語など初心者が最初に覚えるべきポイント
New2
ASP.NET
ASP.NET MVCアプリをデバッグする方法を完全解説!初心者でも安心して原因を見つけられる入門ガイド
New3
ASP.NET
ASP.NET Coreのデフォルトセキュリティ機能を完全解説!初心者でもわかる安全なWebアプリの作り方
New4
VB.NET
VB.NETの構造体とクラスの違いを完全ガイド!初心者でもわかるStructure入門
人気記事
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
ASP.NET
ASP.NETとは?初心者向けにできることと特徴をやさしく解説
No.4
Java&Spring記事人気No4
VB.NET
VB.NETで戻り値を返す関数の書き方を初心者向けに解説
No.5
Java&Spring記事人気No5
VB.NET
VB.NETのDateTime型を完全マスター!日付と時間の操作を初心者向けに解説
No.6
Java&Spring記事人気No6
VB.NET
VB.NETで日付を加算・減算する方法を完全ガイド!AddDaysやAddMonthsの使い方
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのコーディング規約を完全解説!初心者でもわかる読みやすいコードの基本ルール
No.8
Java&Spring記事人気No8
VB.NET
VB.NETで日付を文字列に変換!ToStringやFormatの使い方を徹底解説