Calendar.GetDaysInMonth Method (Int32, Int32)

Returns the number of days in the specified month and year of the current era.

Namespace:  System.Globalization
Assembly:  mscorlib (in mscorlib.dll)

'Declaration
Public Overridable Function GetDaysInMonth ( _
	year As Integer, _
	month As Integer _
) As Integer

Parameters

year
Type: System.Int32
An integer that represents the year.
month
Type: System.Int32
A positive integer that represents the month.

Return Value

Type: System.Int32
The number of days in the specified month in the specified year in the current era.

ExceptionCondition
ArgumentOutOfRangeException

year is outside the range supported by the calendar.

-or-

month is outside the range supported by the calendar.

For example, in GregorianCalendar, GetDaysInMonth for February returns 28 in a common year or 29 in a leap year.

The following code example compares different implementations of the Calendar class.


Imports System.Globalization

Public Class Example
   Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)

      ' Creates an instance of every Calendar type.
      Dim myCals(6) As Calendar
      myCals(0) = New GregorianCalendar()
      myCals(1) = New HebrewCalendar()
      myCals(2) = New HijriCalendar()
      myCals(3) = New JapaneseCalendar()
      myCals(4) = New KoreanCalendar()
      myCals(5) = New TaiwanCalendar()
      myCals(6) = 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)
         outputBlock.Text &= vbCrLf
         outputBlock.Text += String.Format("{0}, Year: {1}", myCals(i).GetType(), myCals(i).GetYear(myDT)) & vbCrLf
         outputBlock.Text += String.Format("   MonthsInYear: {0}", myCals(i).GetMonthsInYear(iYear)) & vbCrLf
         outputBlock.Text += String.Format("   DaysInYear: {0}", myCals(i).GetDaysInYear(iYear)) & vbCrLf
         outputBlock.Text &= "   Days in each month:" & vbCrLf
         outputBlock.Text &= "      "

         For j = 1 To myCals(i).GetMonthsInYear(iYear)
            outputBlock.Text += String.Format(" {0,-5}", myCals(i).GetDaysInMonth(iYear, j))
         Next j
         outputBlock.Text &= vbCrLf

         iMonth = myCals(i).GetMonth(myDT)
         iDay = myCals(i).GetDayOfMonth(myDT)
         outputBlock.Text += String.Format("   IsLeapDay:   {0}", myCals(i).IsLeapDay(iYear, iMonth, iDay)) & vbCrLf
         outputBlock.Text += String.Format("   IsLeapMonth: {0}", myCals(i).IsLeapMonth(iYear, iMonth)) & vbCrLf
         outputBlock.Text += String.Format("   IsLeapYear:  {0}", myCals(i).IsLeapYear(iYear)) & vbCrLf
      Next
   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


Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions

ADD
Show: