DateTime.DaysInMonth Method (System)

Switch View :
ScriptFree
.NET Framework Class Library
DateTime.DaysInMonth Method

Updated: March 2012

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

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

Visual Basic
Public Shared Function DaysInMonth ( _
	year As Integer, _
	month As Integer _
) As Integer
C#
public static int DaysInMonth(
	int year,
	int month
)
Visual C++
public:
static int DaysInMonth(
	int year, 
	int month
)
F#
static member DaysInMonth : 
        year:int * 
        month:int -> int 

Parameters

year
Type: System.Int32
The year.
month
Type: System.Int32
The month (a number ranging from 1 to 12).

Return Value

Type: System.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

Exception Condition
ArgumentOutOfRangeException

month is less than 1 or greater than 12.

-or-

year is less than 1 or greater than 9999.

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.

Examples

The following example demonstrates the DaysInMonth method.

Visual Basic

Const July As Integer = 7
Const Feb As Integer = 2

' daysInJuly gets 31.
Dim daysInJuly As Integer = System.DateTime.DaysInMonth(2001, July)

' daysInFeb gets 28 because the year 1998 was not a leap year.
Dim daysInFeb As Integer = System.DateTime.DaysInMonth(1998, Feb)

' daysInFebLeap gets 29 because the year 1996 was a leap year.
Dim daysInFebLeap As Integer = System.DateTime.DaysInMonth(1996, Feb)


C#

			const int July = 7;
			const int Feb = 2;

			// daysInJuly gets 31.
			int daysInJuly = System.DateTime.DaysInMonth(2001, July);

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

			// daysInFebLeap gets 29 because the year 1996 was a leap year.
			int daysInFebLeap = System.DateTime.DaysInMonth(1996, Feb);


Visual C++

const int July = 7;
const int Feb = 2;

// daysInJuly gets 31.
int daysInJuly = System::DateTime::DaysInMonth( 2001, July );

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

// daysInFebLeap gets 29 because the year 1996 was a leap year.
int daysInFebLeap = System::DateTime::DaysInMonth( 1996, Feb );


Version Information

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library
Platforms

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
See Also

Reference

Change History

Date

History

Reason

March 2012

Added the Remarks section.

Customer feedback.

Community Content

R Petrusha - MSFT
Gregorian calendar

DateTime uses proleptic Gregorian calendar, i.e. DateTime.DaysInMonth(1000,2) returns 28. (Year 1000 is not a leap year according to Gregorian rules, but is a leap year according to Julian calendar.)

Days in a Month in the Julian Calendar

To get the number of days in a month in the Julian Calendar, you can call the JulianCalendar.GetDaysInMonth method. This shows that February 1000 has 29 days:

using System;
using System.Globalization;
public class Example
{
public static void Main()
{
JulianCalendar cal = new JulianCalendar();
Console.WriteLine(cal.GetDaysInMonth(1000, 2)); // Displays 29
}
}


In general, for any calendar, you can get the number of days in a month by calling that calendar's GetDaysInMonth method.

--Ron Petrusha
Common Language Runtime User Education
Microsoft Corporation