# Calendar.IsLeapYear 方法

## 多載

 IsLeapYear(Int32) 判斷目前紀元中指定的年份是否為閏年。Determines whether the specified year in the current era is a leap year. IsLeapYear(Int32, Int32) 當在衍生類別中覆寫時，判斷指定紀元中指定的年份是否為閏年。When overridden in a derived class, determines whether the specified year in the specified era is a leap year.

## IsLeapYear(Int32)

``````public:
virtual bool IsLeapYear(int year);``````
``public virtual bool IsLeapYear (int year);``
``````abstract member IsLeapYear : int -> bool
override this.IsLeapYear : int -> bool``````
``Public Overridable Function IsLeapYear (year As Integer) As Boolean``

year
Int32

#### 例外狀況

`year` 不在曆法支援的範圍內。`year` is outside the range supported by the calendar.

### 範例

``````using namespace System;
using namespace System::Globalization;
int main()
{

// Creates an instance of every Calendar type.
array<Calendar^>^myCals = gcnew array<Calendar^>(8);
myCals[ 0 ] = gcnew GregorianCalendar;
myCals[ 1 ] = gcnew HebrewCalendar;
myCals[ 2 ] = gcnew HijriCalendar;
myCals[ 3 ] = gcnew JapaneseCalendar;
myCals[ 4 ] = gcnew JulianCalendar;
myCals[ 5 ] = gcnew KoreanCalendar;
myCals[ 6 ] = gcnew TaiwanCalendar;
myCals[ 7 ] = gcnew ThaiBuddhistCalendar;

// For each calendar, displays the current year, the number of months in that year,
// and the number of days in each month of that year.
int i;
int j;
int iYear;
int iMonth;
int iDay;
DateTime myDT = DateTime::Today;
for ( i = 0; i < myCals->Length; i++ )
{
iYear = myCals[ i ]->GetYear( myDT );
Console::WriteLine();
Console::WriteLine( " {0}, Year: {1}", myCals[ i ]->GetType(), myCals[ i ]->GetYear( myDT ) );
Console::WriteLine( "   MonthsInYear: {0}", myCals[ i ]->GetMonthsInYear( iYear ) );
Console::WriteLine( "   DaysInYear: {0}", myCals[ i ]->GetDaysInYear( iYear ) );
Console::WriteLine( "   Days in each month:" );
Console::Write( "      " );
for ( j = 1; j <= myCals[ i ]->GetMonthsInYear( iYear ); j++ )
Console::Write( " {0, -5}", myCals[ i ]->GetDaysInMonth( iYear, j ) );
Console::WriteLine();
iMonth = myCals[ i ]->GetMonth( myDT );
iDay = myCals[ i ]->GetDayOfMonth( myDT );
Console::WriteLine( "   IsLeapDay: {0}", myCals[ i ]->IsLeapDay( iYear, iMonth, iDay ) );
Console::WriteLine( "   IsLeapMonth: {0}", myCals[ i ]->IsLeapMonth( iYear, iMonth ) );
Console::WriteLine( "   IsLeapYear: {0}", myCals[ i ]->IsLeapYear( iYear ) );

}
}

/*
This code produces the following output.  The results vary depending on the date.

System::Globalization::GregorianCalendar, Year: 2002
MonthsInYear: 12
DaysInYear: 365
Days in each month:
31    28    31    30    31    30    31    31    30    31    30    31
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  False

System::Globalization::HebrewCalendar, Year: 5763
MonthsInYear: 13
DaysInYear: 385
Days in each month:
30    30    30    29    30    30    29    30    29    30    29    30    29
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  True

System::Globalization::HijriCalendar, Year: 1423
MonthsInYear: 12
DaysInYear: 355
Days in each month:
30    29    30    29    30    29    30    29    30    29    30    30
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  True

System::Globalization::JapaneseCalendar, Year: 14
MonthsInYear: 12
DaysInYear: 365
Days in each month:
31    28    31    30    31    30    31    31    30    31    30    31
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  False

System::Globalization::JulianCalendar, Year: 2002
MonthsInYear: 12
DaysInYear: 365
Days in each month:
31    28    31    30    31    30    31    31    30    31    30    31
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  False

System::Globalization::KoreanCalendar, Year: 4335
MonthsInYear: 12
DaysInYear: 365
Days in each month:
31    28    31    30    31    30    31    31    30    31    30    31
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  False

System::Globalization::TaiwanCalendar, Year: 91
MonthsInYear: 12
DaysInYear: 365
Days in each month:
31    28    31    30    31    30    31    31    30    31    30    31
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  False

System::Globalization::ThaiBuddhistCalendar, Year: 2545
MonthsInYear: 12
DaysInYear: 365
Days in each month:
31    28    31    30    31    30    31    31    30    31    30    31
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  False

*/
``````
``````using System;
using System.Globalization;

public class SamplesCalendar  {

public static void Main()  {

// Creates an instance of every Calendar type.
Calendar[] myCals = new Calendar[8];
myCals[0] = new GregorianCalendar();
myCals[1] = new HebrewCalendar();
myCals[2] = new HijriCalendar();
myCals[3] = new JapaneseCalendar();
myCals[4] = new JulianCalendar();
myCals[5] = new KoreanCalendar();
myCals[6] = new TaiwanCalendar();
myCals[7] = new ThaiBuddhistCalendar();

// For each calendar, displays the current year, the number of months in that year,
// and the number of days in each month of that year.
int i, j, iYear, iMonth, iDay;
DateTime myDT = DateTime.Today;

for ( i = 0; i < myCals.Length; i++ )  {
iYear = myCals[i].GetYear( myDT );
Console.WriteLine();
Console.WriteLine( "{0}, Year: {1}", myCals[i].GetType(), myCals[i].GetYear( myDT ) );
Console.WriteLine( "   MonthsInYear: {0}", myCals[i].GetMonthsInYear( iYear ) );
Console.WriteLine( "   DaysInYear: {0}", myCals[i].GetDaysInYear( iYear ) );
Console.WriteLine( "   Days in each month:" );
Console.Write( "      " );

for ( j = 1; j <= myCals[i].GetMonthsInYear( iYear ); j++ )
Console.Write( " {0,-5}", myCals[i].GetDaysInMonth( iYear, j ) );
Console.WriteLine();

iMonth = myCals[i].GetMonth( myDT );
iDay = myCals[i].GetDayOfMonth( myDT );
Console.WriteLine( "   IsLeapDay:   {0}", myCals[i].IsLeapDay( iYear, iMonth, iDay ) );
Console.WriteLine( "   IsLeapMonth: {0}", myCals[i].IsLeapMonth( iYear, iMonth ) );
Console.WriteLine( "   IsLeapYear:  {0}", myCals[i].IsLeapYear( iYear ) );
}
}
}

/*
This code produces the following output.  The results vary depending on the date.

System.Globalization.GregorianCalendar, Year: 2002
MonthsInYear: 12
DaysInYear: 365
Days in each month:
31    28    31    30    31    30    31    31    30    31    30    31
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  False

System.Globalization.HebrewCalendar, Year: 5763
MonthsInYear: 13
DaysInYear: 385
Days in each month:
30    30    30    29    30    30    29    30    29    30    29    30    29
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  True

System.Globalization.HijriCalendar, Year: 1423
MonthsInYear: 12
DaysInYear: 355
Days in each month:
30    29    30    29    30    29    30    29    30    29    30    30
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  True

System.Globalization.JapaneseCalendar, Year: 14
MonthsInYear: 12
DaysInYear: 365
Days in each month:
31    28    31    30    31    30    31    31    30    31    30    31
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  False

System.Globalization.JulianCalendar, Year: 2002
MonthsInYear: 12
DaysInYear: 365
Days in each month:
31    28    31    30    31    30    31    31    30    31    30    31
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  False

System.Globalization.KoreanCalendar, Year: 4335
MonthsInYear: 12
DaysInYear: 365
Days in each month:
31    28    31    30    31    30    31    31    30    31    30    31
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  False

System.Globalization.TaiwanCalendar, Year: 91
MonthsInYear: 12
DaysInYear: 365
Days in each month:
31    28    31    30    31    30    31    31    30    31    30    31
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  False

System.Globalization.ThaiBuddhistCalendar, Year: 2545
MonthsInYear: 12
DaysInYear: 365
Days in each month:
31    28    31    30    31    30    31    31    30    31    30    31
IsLeapDay:   False
IsLeapMonth: False
IsLeapYear:  False

*/
``````
``````Imports System.Globalization

Public Class SamplesCalendar

Public Shared Sub Main()

' Creates an instance of every Calendar type.
Dim myCals(7) As Calendar
myCals(0) = New GregorianCalendar()
myCals(1) = New HebrewCalendar()
myCals(2) = New HijriCalendar()
myCals(3) = New JapaneseCalendar()
myCals(4) = New JulianCalendar()
myCals(5) = New KoreanCalendar()
myCals(6) = New TaiwanCalendar()
myCals(7) = New ThaiBuddhistCalendar()

' For each calendar, displays the current year, the number of months in that year,
' and the number of days in each month of that year.
Dim i, j, iYear, iMonth, iDay As Integer
Dim myDT As DateTime = DateTime.Today

For i = 0 To myCals.Length - 1
iYear = myCals(i).GetYear(myDT)
Console.WriteLine()
Console.WriteLine("{0}, Year: {1}", myCals(i).GetType(), myCals(i).GetYear(myDT))
Console.WriteLine("   MonthsInYear: {0}", myCals(i).GetMonthsInYear(iYear))
Console.WriteLine("   DaysInYear: {0}", myCals(i).GetDaysInYear(iYear))
Console.WriteLine("   Days in each month:")
Console.Write("      ")

For j = 1 To myCals(i).GetMonthsInYear(iYear)
Console.Write(" {0,-5}", myCals(i).GetDaysInMonth(iYear, j))
Next j
Console.WriteLine()

iMonth = myCals(i).GetMonth(myDT)
iDay = myCals(i).GetDayOfMonth(myDT)
Console.WriteLine("   IsLeapDay:   {0}", myCals(i).IsLeapDay(iYear, iMonth, iDay))
Console.WriteLine("   IsLeapMonth: {0}", myCals(i).IsLeapMonth(iYear, iMonth))
Console.WriteLine("   IsLeapYear:  {0}", myCals(i).IsLeapYear(iYear))
Next i

End Sub

End Class

'This code produces the following output.  The results vary depending on the date.

'

'System.Globalization.GregorianCalendar, Year: 2002

'   MonthsInYear: 12

'   DaysInYear: 365

'   Days in each month:

'       31    28    31    30    31    30    31    31    30    31    30    31

'   IsLeapDay:   False

'   IsLeapMonth: False

'   IsLeapYear:  False

'

'System.Globalization.HebrewCalendar, Year: 5763

'   MonthsInYear: 13

'   DaysInYear: 385

'   Days in each month:

'       30    30    30    29    30    30    29    30    29    30    29    30    29

'   IsLeapDay:   False

'   IsLeapMonth: False

'   IsLeapYear:  True

'

'System.Globalization.HijriCalendar, Year: 1423

'   MonthsInYear: 12

'   DaysInYear: 355

'   Days in each month:

'       30    29    30    29    30    29    30    29    30    29    30    30

'   IsLeapDay:   False

'   IsLeapMonth: False

'   IsLeapYear:  True

'

'System.Globalization.JapaneseCalendar, Year: 14

'   MonthsInYear: 12

'   DaysInYear: 365

'   Days in each month:

'       31    28    31    30    31    30    31    31    30    31    30    31

'   IsLeapDay:   False

'   IsLeapMonth: False

'   IsLeapYear:  False

'

'System.Globalization.JulianCalendar, Year: 2002

'   MonthsInYear: 12

'   DaysInYear: 365

'   Days in each month:

'       31    28    31    30    31    30    31    31    30    31    30    31

'   IsLeapDay:   False

'   IsLeapMonth: False

'   IsLeapYear:  False

'

'System.Globalization.KoreanCalendar, Year: 4335

'   MonthsInYear: 12

'   DaysInYear: 365

'   Days in each month:

'       31    28    31    30    31    30    31    31    30    31    30    31

'   IsLeapDay:   False

'   IsLeapMonth: False

'   IsLeapYear:  False

'

'System.Globalization.TaiwanCalendar, Year: 91

'   MonthsInYear: 12

'   DaysInYear: 365

'   Days in each month:

'       31    28    31    30    31    30    31    31    30    31    30    31

'   IsLeapDay:   False

'   IsLeapMonth: False

'   IsLeapYear:  False

'

'System.Globalization.ThaiBuddhistCalendar, Year: 2545

'   MonthsInYear: 12

'   DaysInYear: 365

'   Days in each month:

'       31    28    31    30    31    30    31    31    30    31    30    31

'   IsLeapDay:   False

'   IsLeapMonth: False

'   IsLeapYear:  False
``````

## IsLeapYear(Int32, Int32)

``````public:
abstract bool IsLeapYear(int year, int era);``````
``public abstract bool IsLeapYear (int year, int era);``
``abstract member IsLeapYear : int * int -> bool``
``Public MustOverride Function IsLeapYear (year As Integer, era As Integer) As Boolean``

year
Int32

era
Int32

#### 例外狀況

`year` 不在曆法支援的範圍內。`year` is outside the range supported by the calendar.

-或--or- `era` 不在曆法支援的範圍內。`era` is outside the range supported by the calendar.