我需要计算程序运行时的当前年份是否为闰年(可被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;
}
}
答案 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;
}