DateTime.DaysInMonth(Int32, Int32) 方法
定义
返回指定年和月中的天数。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
参数
- year
- Int32
年。The year.
- month
- Int32
月(介于 1 到 12 之间的一个数字)。The month (a number ranging from 1 to 12).
返回
指定 month 中 year 中的天数。The number of days in month for the specified year.
例如,如果 month 等于 2(表示二月),则返回值为 28 或 29,具体取决于 year 是否为闰年。For example, if month equals 2 for February, the return value is 28 or 29 depending upon whether year is a leap year.
例外
month 小于 1 或大于 12。month is less than 1 or greater than 12.
或-or-
year 小于 1 或大于 9999。year is less than 1 or greater than 9999.
示例
下面的示例演示如何使用 DaysInMonth 方法来确定2001年2月 1998 (非闰年) 和2月 1996 (闰年) 的天数。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
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
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 即使公历不是当前区域性的当前日历,该方法也会将和解释为公历的月份和年份。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. 若要获取特定日历的指定月份中的天数,请调用该日历的 GetDaysInMonth 方法。To get the number of days in a specified month of a particular calendar, call that calendar's GetDaysInMonth method.