次の方法で共有


GregorianCalendar.IsLeapMonth メソッド (Int32, Int32, Int32)

指定した時代 (年号) の指定した年の指定した月が閏月かどうかを確認します。

Overrides Overloads Public Function IsLeapMonth( _
   ByVal year As Integer, _   ByVal month As Integer, _   ByVal era As Integer _) As Boolean
[C#]
public override bool IsLeapMonth(intyear,intmonth,intera);
[C++]
public: bool IsLeapMonth(intyear,intmonth,intera);
[JScript]
public override function IsLeapMonth(
   year : int,month : int,era : int) : Boolean;

パラメータ

  • year
    年を表す整数。
  • month
    月を表す 1 ~ 12 の整数。
  • era
    時代 (年号) を表す整数。

戻り値

このメソッドは、派生クラスでオーバーライドされない限り、常に false を返します。

例外

例外の種類 条件
ArgumentOutOfRangeException year が暦でサポートされている範囲外の値です。

または

month が暦でサポートされている範囲外の値です。

ArgumentException era が暦でサポートされている範囲外の値です。

解説

グレゴリオ暦の閏年は、100 で割り切れる年を除く、4 で割り切れる年として定義されていますが、400 で割り切れる年は閏年になります。たとえば、1900 年は閏年ではありませんでしたが、2000 年は閏年でした。平年の日数は 365 日で、閏年の日数は 366 日です。

閏月は、閏年にだけ訪れる 1 か月です。グレゴリオ暦には、閏月はありません。

使用例

[Visual Basic, C#, C++] 現在の時代 (年号) の 5 年間のすべての月の IsLeapMonth を呼び出す例を次に示します。

 
Imports System
Imports System.Globalization
Imports Microsoft.VisualBasic

Public Class SamplesGregorianCalendar   
   
   Public Shared Sub Main()

      ' Creates and initializes a GregorianCalendar.
      Dim myCal As New GregorianCalendar()

      ' Checks all the months in five years in the current era.
      Dim iMonthsInYear As Integer
      Dim y As Integer
      For y = 2001 To 2005
         Console.Write("{0}:" + ControlChars.Tab, y)
         iMonthsInYear = myCal.GetMonthsInYear(y, GregorianCalendar.CurrentEra)
         Dim m As Integer
         For m = 1 To iMonthsInYear
            Console.Write(ControlChars.Tab + "{0}", myCal.IsLeapMonth(y, m, GregorianCalendar.CurrentEra))
         Next m
         Console.WriteLine()
      Next y

   End Sub 'Main 

End Class 'SamplesGregorianCalendar


'This code produces the following output.

'

'2001:           False   False   False   False   False   False   False   False   False   False   False   False

'2002:           False   False   False   False   False   False   False   False   False   False   False   False

'2003:           False   False   False   False   False   False   False   False   False   False   False   False

'2004:           False   False   False   False   False   False   False   False   False   False   False   False

'2005:           False   False   False   False   False   False   False   False   False   False   False   False



[C#] 
using System;
using System.Globalization;


public class SamplesGregorianCalendar  {

   public static void Main()  {

      // Creates and initializes a GregorianCalendar.
      GregorianCalendar myCal = new GregorianCalendar();

      // Checks all the months in five years in the current era.
      int iMonthsInYear;
      for ( int y = 2001; y <= 2005; y++ )  {
         Console.Write( "{0}:\t", y );
         iMonthsInYear = myCal.GetMonthsInYear( y, GregorianCalendar.CurrentEra );
         for ( int m = 1; m <= iMonthsInYear; m++ )
            Console.Write( "\t{0}", myCal.IsLeapMonth( y, m, GregorianCalendar.CurrentEra ) );
         Console.WriteLine();
      }

   }

}

/*
This code produces the following output.

2001:           False   False   False   False   False   False   False   False   False   False   False   False
2002:           False   False   False   False   False   False   False   False   False   False   False   False
2003:           False   False   False   False   False   False   False   False   False   False   False   False
2004:           False   False   False   False   False   False   False   False   False   False   False   False
2005:           False   False   False   False   False   False   False   False   False   False   False   False

*/

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace System::Globalization;

int main()
{
   // Creates and initializes a GregorianCalendar.
   GregorianCalendar* myCal = new GregorianCalendar();

   // Checks all the months in five years in the current era.
   int iMonthsInYear;
   for (int y = 2001; y <= 2005; y++)
   {
      Console::Write(S" {0}:\t", __box(y));
      iMonthsInYear = myCal -> GetMonthsInYear(y, GregorianCalendar::CurrentEra);
      for (int m = 1; m <= iMonthsInYear; m++)
         Console::Write(S"\t {0}", __box(myCal -> IsLeapMonth(y, m, GregorianCalendar::CurrentEra)));
      Console::WriteLine();
   }
}

/*
This code produces the following output.

2001:           False   False   False   False   False   False   False   False   False   False   False   False
2002:           False   False   False   False   False   False   False   False   False   False   False   False
2003:           False   False   False   False   False   False   False   False   False   False   False   False
2004:           False   False   False   False   False   False   False   False   False   False   False   False
2005:           False   False   False   False   False   False   False   False   False   False   False   False

*/

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

GregorianCalendar クラス | GregorianCalendar メンバ | System.Globalization 名前空間 | GregorianCalendar.IsLeapMonth オーバーロードの一覧 | CurrentEra | ADEra | Eras | GetMonthsInYear | IsLeapYear | IsLeapDay