다음을 통해 공유


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의 날 수입니다.

예를 들어, 2월의 month가 2이면, 반환 값은 year가 윤년인지 여부에 따라 28이나 29가 됩니다.

예외

month가 1보다 작거나 12보다 큽니다.

또는

year가 1보다 작거나 9999보다 큽니다.

예제

다음 예제에서는 메서드를 사용하여 DaysInMonth 2001년 7월, 1998년 2월(비윤년) 및 1996년 2월(윤년)의 일 수를 확인하는 방법을 보여 줍니다.

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 메서드를 호출합니다.

적용 대상