# DateTime.DaysInMonth(Int32, Int32) Method

## Definition

Returns the number of days in the specified month and year.

``````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``

#### Parameters

year
Int32

The year.

month
Int32

The month (a number ranging from 1 to 12).

#### Returns

Int32

The number of days in `month` for the specified `year`.

For example, if `month` equals 2 for February, the return value is 28 or 29 depending upon whether `year` is a leap year.

#### Exceptions

`month` is less than 1 or greater than 12.

-or-

`year` is less than 1 or greater than 9999.

## Examples

The following example demonstrates how to use the DaysInMonth method to determine the number of days in July 2001, February 1998 (a non-leap year), and February 1996 (a leap year).

``````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
``````

The following example displays the number of days in each month of a year specified in an integer array.

``````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
``````

## Remarks

The DaysInMonth method always interprets `month` and `year` as the month and year of the Gregorian calendar even if the Gregorian calendar is not the current culture's current calendar. To get the number of days in a specified month of a particular calendar, call that calendar's GetDaysInMonth method.