Calendar.GetDaysInMonth Method
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
When overridden in a derived class, returns the number of days in the specified month.
GetDaysInMonth(Int32, Int32) |
Returns the number of days in the specified month and year of the current era. |
GetDaysInMonth(Int32, Int32, Int32) |
When overridden in a derived class, returns the number of days in the specified month, year, and era. |
- Source:
- Calendar.cs
- Source:
- Calendar.cs
- Source:
- Calendar.cs
Returns the number of days in the specified month and year of the current era.
public:
virtual int GetDaysInMonth(int year, int month);
public virtual int GetDaysInMonth (int year, int month);
abstract member GetDaysInMonth : int * int -> int
override this.GetDaysInMonth : int * int -> int
Public Overridable Function GetDaysInMonth (year As Integer, month As Integer) As Integer
Parameters
- year
- Int32
An integer that represents the year.
- month
- Int32
A positive integer that represents the month.
Returns
The number of days in the specified month in the specified year in the current era.
Exceptions
year
is outside the range supported by the calendar.
-or-
month
is outside the range supported by the calendar.
Examples
The following code example compares different implementations of the Calendar class.
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
Remarks
For example, in GregorianCalendar, GetDaysInMonth for February returns 28 in a common year or 29 in a leap year.
See also
Applies to
.NET 9 and other versions
Product | Versions |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- Source:
- Calendar.cs
- Source:
- Calendar.cs
- Source:
- Calendar.cs
When overridden in a derived class, returns the number of days in the specified month, year, and era.
public:
abstract int GetDaysInMonth(int year, int month, int era);
public abstract int GetDaysInMonth (int year, int month, int era);
abstract member GetDaysInMonth : int * int * int -> int
Public MustOverride Function GetDaysInMonth (year As Integer, month As Integer, era As Integer) As Integer
Parameters
- year
- Int32
An integer that represents the year.
- month
- Int32
A positive integer that represents the month.
- era
- Int32
An integer that represents the era.
Returns
The number of days in the specified month in the specified year in the specified era.
Exceptions
year
is outside the range supported by the calendar.
-or-
month
is outside the range supported by the calendar.
-or-
era
is outside the range supported by the calendar.
Remarks
For example, in GregorianCalendar, GetDaysInMonth for February returns 28 in a common year or 29 in a leap year.
Notes to Implementers
The derived class must support CurrentEra when it is passed as the era
parameter. One way to support CurrentEra is by replacing it with the value stored in Eras[0]
, which is the value for the current era of the calendar.
See also
Applies to
.NET 9 and other versions
Product | Versions |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
.NET feedback
.NET is an open source project. Select a link to provide feedback: