C#输入两个正整数:年份和月份,以空格分割,输出这一年的这一月有多少天。需要考虑闰年
时间: 2024-09-24 17:07:23 浏览: 38
在C#中,你可以使用`DateTime`类来处理这个问题,因为它内置了对闰年的判断以及每个月份天数的计算。以下是一个简单的函数示例:
```csharp
using System;
class Program {
static void Main() {
Console.Write("请输入年份(YYYY)和月份(MM): ");
string[] input = Console.ReadLine().Split(' ');
int year = Int32.Parse(input[0]);
int month = Int32.Parse(input[1]);
int daysInMonth;
if (IsLeapYear(year))
daysInMonth = DateTime.IsLeapYear(year) ? GetDaysInLeapMonth(month) : GetDaysInNonLeapMonth(month);
else
daysInMonth = GetDaysInNonLeapMonth(month);
Console.WriteLine($"{year}年{month}月有 {daysInMonth} 天。");
}
// 判断是否为闰年
static bool IsLeapYear(int year) => year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
// 获取非闰年该月的天数
static int GetDaysInNonLeapMonth(int month) {
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
default:
throw new ArgumentException("Invalid month value.");
}
}
// 获取闰年该月的天数(对于二月)
static int GetDaysInLeapMonth(int month) {
if (month == 2)
return 29;
else
throw new ArgumentException("Invalid month value.");
}
}
```
阅读全文