目录
一、DateTime.DaysInMonth(Int32, Int32) 方法
二、实例
1.实例1
2.实例2
3.方法3
一、DateTime.DaysInMonth(Int32, Int32) 方法
返回指定年和月中的天数。
public static int DaysInMonth (int year, int month);
参数
year Int32
年。
month Int32
月(介于 1 到 12 之间的一个数字)。
返回
Int32
指定 month 中 year 中的天数。
例如,如果 month 等于 2(表示二月),则返回值为 28 或 29,具体取决于 year 是否为闰年。
例外
ArgumentOutOfRangeException
month 小于 1 或大于 12。
或 -
year 小于 1 或大于 9999。
二、实例
DaysInMonth方法接收两个整型数值的参数,两个整型数值分别代表要计算天数指定的年份和月份,方法返回一个整型数值,表示指定年和月中的天数。
1.实例1
//用DateTime.DaysInMonth获取当前月的天数
namespace _059
{
public partial class Form1 : Form
{
private Button? button1;
public Form1()
{
InitializeComponent();
Load += Form1_Load;
}
private void Form1_Load(object? sender, EventArgs e)
{
//
// button1
//
button1 = new Button
{
Location = new Point(98, 31),
Name = "button1",
Size = new Size(100, 23),
TabIndex = 0,
Text = "当前月份的天数",
UseVisualStyleBackColor = true
};
button1.Click += Button1_Click;
//
// Form1
//
AutoScaleDimensions = new SizeF(7F, 17F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(284, 81);
Controls.Add(button1);
Name = "Form1";
StartPosition = FormStartPosition.CenterScreen;
Text = "计算当前月份的天数";
}
private void Button1_Click(object? sender, EventArgs e)
{
int Day_Count = DateTime.DaysInMonth(//获取本月的天数
DateTime.Now.Year, DateTime.Now.Month);
MessageBox.Show("本月有" +//显示本月的天数
Day_Count.ToString() + "天", "提示!");
}
}
}
2.实例2
// DateTime.DaysInMonth()
namespace _059_1
{
class Example
{
static void Main()
{
const int July = 7;
const int Feb = 2;
int daysInJuly = DateTime.DaysInMonth(2021, July);
Console.WriteLine(daysInJuly);
// daysInFeb gets 28 because the year 2022 was not a leap year.
int daysInFeb = DateTime.DaysInMonth(2022, Feb);
Console.WriteLine(daysInFeb);
// daysInFebLeap gets 29 because the year 2024 was a leap year.
int daysInFebLeap = DateTime.DaysInMonth(2024, Feb);
Console.WriteLine(daysInFebLeap);
}
}
}
// 运行结果:
/*
31
28
29
*/
3.方法3
// DateTime.DaysInMonth(Int32, Int32) 方法
using System.Globalization;
namespace _059_2
{
public class Example
{
public static void Main()
{
int[] years = [2023, 2024];
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();
}
}
}
}
// 运行结果:
/*
Days in the Month for the zh-CN culture using the Gregorian calendar
Year Month Days
2023 一月 31
2023 二月 28
2023 三月 31
2023 四月 30
2023 五月 31
2023 六月 30
2023 七月 31
2023 八月 31
2023 九月 30
2023 十月 31
2023 十一月 30
2023 十二月 31
2024 一月 31
2024 二月 29
2024 三月 31
2024 四月 30
2024 五月 31
2024 六月 30
2024 七月 31
2024 八月 31
2024 九月 30
2024 十月 31
2024 十一月 30
2024 十二月 31
*/