计算没有闰年功能的闰年

时间:2014-03-10 11:24:55

标签: c# arrays winforms c#-4.0 leap-year

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

// DateTimePicker代码

    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;
        }
    }

2 个答案:

答案 0 :(得分:5)

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

var year = now.Year;

if (year % 4 == 00 && !(year % 100 == 0 && year % 400 != 0))
{
    ....
}

答案 1 :(得分:0)

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

    if (now.Year % 4 == 0 && now.Year % 400 == 0)
    {
        months[1] = 29;
    }