Export (0) Print
Expand All
3 out of 5 rated this helpful - Rate this topic

DateTime.DaysInMonth Method

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

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)
public static int DaysInMonth(
	int year,
	int month
)

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.
ExceptionCondition
ArgumentOutOfRangeException

month is less than 1 or greater than 12.

-or-

year is less than 1 or greater than 9999.

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.

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

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

.NET Framework

Supported in: 4.5.1, 4.5, 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

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

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

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.