isLeapYear method

bool isLeapYear({
  1. int? year,
})

是否为闰年

关于公历闰年是这样规定的:地球绕太阳公转一周叫做一回归年,一回归年长365日5时48分46秒。 因此,公历规定有平年和闰年,平年一年有365日,比回归年短0.2422日,四年共短0.9688日,故每四年增加一日,这一年有366日,就是闰年。 但四年增加一日比四个回归年又多0.0312日,400年后将多3.12日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这样公历年的平均长度与回归年就相近似了。

由此规定:年份是整百数的必须是400的倍数才是闰年,例如1900年、2100年就不是闰年。

四年一闰,百年不闰,四百年再闰。

### 参数 * year 传入年份,计算,否则计算当年。

Implementation

bool isLeapYear({int? year}) {
  int _year = year ?? DateTime.now().year;
  if (_year == 3200) {
    return false;
  }
  return ((_year % 4 == 0 && _year % 100 != 0) || _year % 400 == 0);
}