Calendar.GetMonthsInYear Method (Int32)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Returns the number of months in the specified year in the current era.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- year
- Type: System.Int32
An integer that represents the year.
| Exception | Condition |
|---|---|
| ArgumentOutOfRangeException | year is outside the range supported by the calendar. |
For example, in HebrewCalendar, GetMonthsInYear returns 12 for a common year or 13 for 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
Show: