DateTime.DaysInMonth(Int32, Int32) Method (System)

Table of contents Exit editor mode Ask Learn Ask Learn Focus mode Language
  • csharp
  • vb
  • fsharp
  • cpp
Table of contents Read in English Add Add to plan Edit

Share via

Facebook x.com LinkedIn Email Print

Note

Access to this page requires authorization. You can try signing in or changing directories.

Access to this page requires authorization. You can try changing directories.

Summarize this article for me DateTime.DaysInMonth(Int32, Int32) Method

Definition

Namespace: System Assemblies:mscorlib.dll, System.Runtime.dll Assemblies:netstandard.dll, System.Runtime.dll Assembly:System.Runtime.dll Assembly:mscorlib.dll Assembly:netstandard.dll Source:DateTime.cs Source:DateTime.cs Source:DateTime.cs Source:DateTime.cs

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

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

ArgumentOutOfRangeException

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

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.

Applies to

Collaborate with us on GitHub The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.

.NET

Open a documentation issue Provide product feedback

Feedback

Was this page helpful?

Yes No No

Need help with this topic?

Want to try using Ask Learn to clarify or guide you through this topic?

Ask Learn Ask Learn Suggest a fix?

In this article

Was this page helpful?

Yes No No

Need help with this topic?

Want to try using Ask Learn to clarify or guide you through this topic?

Ask Learn Ask Learn Suggest a fix?

Tag » How Many Days Till June 30