我正在尝试用 C# 编写自己的日期程序,我遇到的问题是当用户输入日期(例如 2-31)时,程序允许它。我想创建一个条件,我可以匹配输入的月份,然后从中查看该月的日期是否可用。我在下面使用这段代码,但它会在任何一天(例如 10 月 10 日)给我抛出异常,这应该是正确的。如果我将此注释掉,则日期有效,但不会检查是否与月份匹配。
public int Day
{
get
{
return day;
}
private set
{
//int[] daysPerMonth = { 0, 31, 28, 31, 30, 31, 30,
// 31, 31, 30, 31, 30, 31 };
//// check if day in range for month
//if (value > 0 && value <= daysPerMonth[Month])
// day = value;
//else // day is invalid
// throw new ArgumentOutOfRangeException(
// "Day", value, "Day out of range for current month/year");
if (value > 0 && value <= 31)
day = value;
else
throw new ArgumentOutOfRangeException("Day", value, "Day must be 1-31");
}
}