① 该年份能被 4 整除同时不能被 100 整除;
② 该年份能被400整除。
方法一、
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
d1 = 29;
else
d1 = 28;
方法二、
d2 = 28;
// 4的倍数
if ((year & 0x03) == 0) {
// 100的倍数
if ((year >> 2) % 25 == 0) {
if ((year & 0x0f) == 0) {
// 400的倍数
d2 = 29;
}
} else {
d2 = 29;
}
}