2

我需要计算程序运行时的当前年份是否是闰年(可被 4 整除,不能被 100 整除但可被 400 整除)但不使用 DateTime.LeapYear 属性。任何人都可以提出任何建议吗?

//日期时间选择器代码

    private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
    {
        DateTime now;
        int[] months = {31,28,31,30,31,30,31,31,30,31,30,31};
        now = DateTime.Now.Date;
        if (now.Year / 4 == 0 && now.Year / 400 == 0)
        {
            months(1) = 29;
        }
    }
4

2 回答 2

5

我认为这涵盖了三个标准:

var year = now.Year;

if (year % 4 == 00 && !(year % 100 == 0 && year % 400 != 0))
{
    ....
}
于 2014-03-10T11:30:35.047 回答
0

%检查可除性时使用模运算符。此外,在更改数组时,请使用数组索引器[],而不是括号:

    if (now.Year % 4 == 0 && now.Year % 400 == 0)
    {
        months[1] = 29;
    }
于 2014-03-10T11:27:18.487 回答