Condividi tramite


UmAlQuraCalendar.GetMonthsInYear Method (Int32, Int32)

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Updated: October 2010

Calculates the number of months in the specified year of the specified era.

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

Syntax

'Declaration
Public Overrides Function GetMonthsInYear ( _
    year As Integer, _
    era As Integer _
) As Integer
public override int GetMonthsInYear(
    int year,
    int era
)

Parameters

  • era
    Type: System.Int32
    An era. Specify UmAlQuaraCalendar.Eras[UmAlQuraCalendar.CurrentEra].

Return Value

Type: System.Int32
Always 12.

Exceptions

Exception Condition
ArgumentOutOfRangeException

year is outside the range supported by this calendar.

ArgumentException

era is outside the range supported by this calendar.

Examples

The following example calls the GetMonthsInYear method to determine the number of months in four consecutive years, and then calls the GetDaysInMonth method to determine how many days there are in each month.

Imports System.Collections.Generic
Imports System.Globalization

Module Example
   Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
      outputBlock.FontFamily = new System.Windows.Media.FontFamily("Courier New")

      Dim cal As New UmAlQuraCalendar()
      Dim months As New List(Of String)
      Dim output As String = String.Empty

      ' Get the current year in the UmAlQura calendar.
      Dim startYear As Integer = cal.GetYear(Date.Now)
      ' Display the number of days in each month for the next five years.
      outputBlock.Text += String.Format("          Days in Each Month, {0} to {1}", 
                        startYear, startYear + 4) & vbCrLf
      outputBlock.Text &= vbCrLf
      outputBlock.Text += String.Format("Month     {0}     {1}     {2}     {3}     {4}", 
                        startYear, startYear + 1, startYear + 2, 
                        startYear + 3, startYear + 4) & vbCrLf
      For year As Integer = startYear To startYear + 4
         Dim days As Integer
         For month As Integer = 1 To cal.GetMonthsInYear(year, cal.Eras(UmAlQuraCalendar.CurrentEra))
            days = cal.GetDaysInMonth(year, month, 
                                      cal.Eras(UmAlQuraCalendar.CurrentEra))
            output = String.Format("{0}     ", days)
            If months.Count < month Then
               months.Add(String.Format("{0,4}        {1}", 
                                        month, output))
            Else
               months.Item(month - 1) += "  " + output
            End If
         Next
      Next

      For Each item In months
         outputBlock.Text &= item & vbCrLf
      Next
   End Sub
End Module
' The example displays the following output:
'                 Days in Each Month, 1431 to 1435
'       
'       Month     1431     1432     1433     1434     1435
'          1        29       29       30       29       30
'          2        30       30       29       30       29
'          3        30       30       30       29       30
'          4        29       30       30       30       29
'          5        30       29       29       29       30
'          6        29       30       30       30       29
'          7        30       29       30       30       30
'          8        29       30       29       29       29
'          9        30       29       30       30       30
'         10        29       30       29       30       30
'         11        29       29       30       29       29
'         12        30       29       29       29       30
using System;
using System.Collections.Generic;
using System.Globalization;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      outputBlock.FontFamily = new System.Windows.Media.FontFamily("Courier New");

      UmAlQuraCalendar cal = new UmAlQuraCalendar();
      List<string> months = new List<string>();
      string output = String.Empty;

      // Get the current year in the UmAlQura calendar.
      int startYear = cal.GetYear(DateTime.Now);
      // Display the number of days in each month for the next five years.
      outputBlock.Text += String.Format("          Days in Each Month, {0} to {1}\n",
                        startYear, startYear + 4) + "\n";

      outputBlock.Text += String.Format("Month     {0}     {1}     {2}     {3}     {4}",
                        startYear, startYear + 1, startYear + 2, startYear + 3,
                        startYear + 4) + "\n";
      for (int year = startYear; year <= startYear + 4; year++)
      {
         int days;
         for (int month = 1; month <= cal.GetMonthsInYear(year, 
                                      cal.Eras[UmAlQuraCalendar.CurrentEra]);
                             month++)
         {
            days = cal.GetDaysInMonth(year, month,
                                      cal.Eras[UmAlQuraCalendar.CurrentEra]);
            output = String.Format("{0}     ", days);
            if (months.Count < month)
               months.Add(String.Format("{0,4}        {1}",
                                        month, output));
            else
               months[month - 1] += "  " + output;

         }
      }

      foreach (var item in months)
         outputBlock.Text += item + "\n";
   }
}
// The example displays the following output:
//                 Days in Each Month, 1431 to 1435
//       
//       Month     1431     1432     1433     1434     1435
//          1        29       29       30       29       30
//          2        30       30       29       30       29
//          3        30       30       30       29       30
//          4        29       30       30       30       29
//          5        30       29       29       29       30
//          6        29       30       30       30       29
//          7        30       29       30       30       30
//          8        29       30       29       29       29
//          9        30       29       30       30       30
//         10        29       30       29       30       30
//         11        29       29       30       29       29
//         12        30       29       29       29       30

Version Information

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

Platforms

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

Change History

Date

History

Reason

October 2010

Corrected the return value information and replaced the example.

Customer feedback.