Calendar.GetDaysInMonth Metodo

Definizione

Quando è sottoposto a override in una classe derivata, restituisce il numero di giorni nel mese specificato.

Overload

GetDaysInMonth(Int32, Int32)

Restituisce il numero di giorni nel mese e nell'anno specificati dell'era corrente.

GetDaysInMonth(Int32, Int32, Int32)

Quando è sottoposto a override in una classe derivata, restituisce il numero di giorni nel mese, nell'anno e nell'era specificati.

GetDaysInMonth(Int32, Int32)

Origine:
Calendar.cs
Origine:
Calendar.cs
Origine:
Calendar.cs

Restituisce il numero di giorni nel mese e nell'anno specificati dell'era corrente.

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

Parametri

year
Int32

Valore intero che rappresenta l'anno.

month
Int32

Valore intero positivo che rappresenta il mese.

Restituisce

Numero di giorni nel mese specificato dell'anno specificato dell'era corrente.

Eccezioni

year non è compreso nell'intervallo supportato dal calendario.

-oppure-

month non è compreso nell'intervallo supportato dal calendario.

Esempio

Nell'esempio di codice seguente vengono confrontate implementazioni diverse della Calendar classe .

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

Commenti

Ad esempio, in GregorianCalendarGetDaysInMonth , per febbraio restituisce 28 in un anno comune o 29 in un anno bisestile.

Vedi anche

Si applica a

GetDaysInMonth(Int32, Int32, Int32)

Origine:
Calendar.cs
Origine:
Calendar.cs
Origine:
Calendar.cs

Quando è sottoposto a override in una classe derivata, restituisce il numero di giorni nel mese, nell'anno e nell'era specificati.

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

Parametri

year
Int32

Valore intero che rappresenta l'anno.

month
Int32

Valore intero positivo che rappresenta il mese.

era
Int32

Valore intero che rappresenta l'era.

Restituisce

Numero di giorni nel mese specificato dell'anno specificato dell'era specificata.

Eccezioni

year non è compreso nell'intervallo supportato dal calendario.

-oppure-

month non è compreso nell'intervallo supportato dal calendario.

-oppure-

era non è compreso nell'intervallo supportato dal calendario.

Commenti

Ad esempio, in GregorianCalendarGetDaysInMonth , per febbraio restituisce 28 in un anno comune o 29 in un anno bisestile.

Note per gli implementatori

La classe derivata deve supportare CurrentEra quando viene passata come era parametro . Un modo per supportare CurrentEra consiste nel sostituirlo con il valore archiviato in Eras[0], ovvero il valore per l'era corrente del calendario.

Vedi anche

Si applica a