DateTime.DaysInMonth(Int32, Int32) Метод

Определение

Возвращает число дней в указанном месяце указанного года.

public:
 static int DaysInMonth(int year, int month);
public static int DaysInMonth (int year, int month);
static member DaysInMonth : int * int -> int
Public Shared Function DaysInMonth (year As Integer, month As Integer) As Integer

Параметры

year
Int32

Год.

month
Int32

Месяц (число в диапазоне от 1 до 12).

Возвращаемое значение

Int32

Число дней в month для заданного year.

Например, если параметр month равен 2 для февраля, возвращаемым значением является 28 или 29 в зависимости от того, является ли year високосным годом.

Исключения

Параметр month имеет значение меньше 1 или больше 12.

-или-

Параметр year меньше 1 или больше 9999.

Примеры

В следующем примере показано, как использовать DaysInMonth метод для определения количества дней в июле 2001 г., февраль 1998 г. (не високосный год) и февраль 1996 г. (високосный год).

using namespace System;

int main()
{
   const int July = 7;
   const int Feb = 2;
   
   int daysInJuly = System::DateTime::DaysInMonth( 2001, July );
   Console::WriteLine(daysInJuly);   
   // daysInFeb gets 28 because the year 1998 was not a leap year.
   int daysInFeb = System::DateTime::DaysInMonth( 1998, Feb );
   Console::WriteLine(daysInFeb);
   // daysInFebLeap gets 29 because the year 1996 was a leap year.
   int daysInFebLeap = System::DateTime::DaysInMonth( 1996, Feb );
   Console::WriteLine(daysInFebLeap);
}
// The example displays the following output:
//       31
//       28
//       29
open System

let July = 7
let Feb = 2

let daysInJuly = DateTime.DaysInMonth(2001, July)
printfn $"{daysInJuly}"

// daysInFeb gets 28 because the year 1998 was not a leap year.
let daysInFeb = DateTime.DaysInMonth(1998, Feb)
printfn $"{daysInFeb}"

// daysInFebLeap gets 29 because the year 1996 was a leap year.
let daysInFebLeap = DateTime.DaysInMonth(1996, Feb)
printfn $"{daysInFebLeap}"

// The example displays the following output:
//       31
//       28
//       29
using System;

class Example
{
    static void Main()
    {
        const int July = 7;
        const int Feb = 2;

        int daysInJuly = System.DateTime.DaysInMonth(2001, July);
        Console.WriteLine(daysInJuly);

        // daysInFeb gets 28 because the year 1998 was not a leap year.
        int daysInFeb = System.DateTime.DaysInMonth(1998, Feb);
        Console.WriteLine(daysInFeb);

        // daysInFebLeap gets 29 because the year 1996 was a leap year.
        int daysInFebLeap = System.DateTime.DaysInMonth(1996, Feb);
        Console.WriteLine(daysInFebLeap);
    }
}
// The example displays the following output:
//       31
//       28
//       29
Class Example
   Public Shared Sub Main()
      Const July As Integer = 7
      Const Feb As Integer = 2

      Dim daysInJuly As Integer = System.DateTime.DaysInMonth(2001, July)
      Console.WriteLine(daysInJuly)
      
      ' daysInFeb gets 28 because the year 1998 was not a leap year.
      Dim daysInFeb As Integer = System.DateTime.DaysInMonth(1998, Feb)
      Console.WriteLine(daysInFeb)
      ' daysInFebLeap gets 29 because the year 1996 was a leap year.
      Dim daysInFebLeap As Integer = System.DateTime.DaysInMonth(1996, Feb)
      Console.WriteLine(daysInFebLeap)
   End Sub
End Class
' The example displays the following output:
'       31
'       28
'       29

В следующем примере показано количество дней в каждом месяце года, указанное в массиве целых чисел.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      int[] years = { 2012, 2014 };
      DateTimeFormatInfo dtfi = DateTimeFormatInfo.CurrentInfo;
      Console.WriteLine("Days in the Month for the {0} culture " +
                        "using the {1} calendar\n",
                        CultureInfo.CurrentCulture.Name,
                        dtfi.Calendar.GetType().Name.Replace("Calendar", ""));
      Console.WriteLine("{0,-10}{1,-15}{2,4}\n", "Year", "Month", "Days");

      foreach (var year in years) {
         for (int ctr = 0; ctr <= dtfi.MonthNames.Length - 1; ctr++) {
            if (String.IsNullOrEmpty(dtfi.MonthNames[ctr]))
               continue;

            Console.WriteLine("{0,-10}{1,-15}{2,4}", year,
                              dtfi.MonthNames[ctr],
                              DateTime.DaysInMonth(year, ctr + 1));
         }
         Console.WriteLine();
      }
   }
}
// The example displays the following output:
//    Days in the Month for the en-US culture using the Gregorian calendar
//
//    Year      Month          Days
//
//    2012      January          31
//    2012      February         29
//    2012      March            31
//    2012      April            30
//    2012      May              31
//    2012      June             30
//    2012      July             31
//    2012      August           31
//    2012      September        30
//    2012      October          31
//    2012      November         30
//    2012      December         31
//
//    2014      January          31
//    2014      February         28
//    2014      March            31
//    2014      April            30
//    2014      May              31
//    2014      June             30
//    2014      July             31
//    2014      August           31
//    2014      September        30
//    2014      October          31
//    2014      November         30
//    2014      December         31
open System
open System.Globalization

let years = [| 2012; 2014 |]
let dtfi = DateTimeFormatInfo.CurrentInfo
printfn $"""Days in the Month for the {CultureInfo.CurrentCulture.Name} culture using the {dtfi.Calendar.GetType().Name.Replace("Calendar", "")} calendar\n"""
printfn $"""{"Year",-10}{"Month",-15}{"Days",4}\n"""

for year in years do
    for i = 0 to dtfi.MonthNames.Length - 1 do
        if not (String.IsNullOrEmpty dtfi.MonthNames[i]) then
            printfn $"{year,-10}{dtfi.MonthNames[i],-15}{DateTime.DaysInMonth(year, i + 1),4}"
    printfn ""

// The example displays the following output:
//    Days in the Month for the en-US culture using the Gregorian calendar
//
//    Year      Month          Days
//
//    2012      January          31
//    2012      February         29
//    2012      March            31
//    2012      April            30
//    2012      May              31
//    2012      June             30
//    2012      July             31
//    2012      August           31
//    2012      September        30
//    2012      October          31
//    2012      November         30
//    2012      December         31
//
//    2014      January          31
//    2014      February         28
//    2014      March            31
//    2014      April            30
//    2014      May              31
//    2014      June             30
//    2014      July             31
//    2014      August           31
//    2014      September        30
//    2014      October          31
//    2014      November         30
//    2014      December         31
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim years() As Integer = { 2012, 2014 }
      Dim dtfi As DateTimeFormatInfo = DateTimeFormatInfo.CurrentInfo
      Console.WriteLine("Days in the Month for the {0} culture " +
                        "using the {1} calendar", 
                        CultureInfo.CurrentCulture.Name, 
                        dtfi.Calendar.GetType.Name.Replace("Calendar", ""))
      Console.WriteLine()
      Console.WriteLine("{0,-10}{1,-15}{2,4}", "Year", "Month", "Days")
      Console.WriteLine()
      
      For Each [year] As Integer In years
         For ctr As Integer = 0 To dtfi.MonthNames.Length - 1
            If String.IsNullOrEmpty(dtfi.MonthNames(ctr)) Then 
               Continue For
            End If    
            
            Console.WriteLine("{0,-10}{1,-15}{2,4}", [year], 
                              dtfi.MonthNames(ctr), 
                              DateTime.DaysInMonth([year], ctr + 1))
         Next
         Console.WriteLine() 
      Next
   End Sub
End Module
' The example displays the following output:
'    Days in the Month for the en-US culture using the Gregorian calendar
'    
'    Year      Month          Days
'    
'    2012      January          31
'    2012      February         29
'    2012      March            31
'    2012      April            30
'    2012      May              31
'    2012      June             30
'    2012      July             31
'    2012      August           31
'    2012      September        30
'    2012      October          31
'    2012      November         30
'    2012      December         31
'    
'    2014      January          31
'    2014      February         28
'    2014      March            31
'    2014      April            30
'    2014      May              31
'    2014      June             30
'    2014      July             31
'    2014      August           31
'    2014      September        30
'    2014      October          31
'    2014      November         30
'    2014      December         31

Комментарии

Метод DaysInMonth всегда интерпретирует month и year как месяц и год григорианского календаря, даже если григорианский календарь не является текущим календарем культуры. Чтобы получить количество дней в указанном месяце определенного календаря, вызовите метод этого календаря GetDaysInMonth .

Применяется к