← 中文资源

简体中文版本

闰年判断与月份天数计算

按公历规则判断闰年,并返回任意月份的确切天数,包括闰年与平年的二月。

阅读英文原文

功能说明

判断闰年和某月天数是日期处理的高频需求。该实现遵循公历规则:能被 4 整除,但不能被 100 整除,除非还能被 400 整除。月份天数表在二月根据闰年结果选择 28 或 29。它适合日历、账期和报表的边界计算,不依赖本地时区。

关键代码

isLeapYear 先校验年份为 1 到 9999 的整数,再用组合条件判断。daysInMonth 校验月份后构造 12 个月的天数数组,返回 month - 1 对应的值。year 与 month 都必须是整数,字符串会被拒绝。

return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);

使用注意

该函数只支持公历,不适用于儒略历历史日期。年份范围限定 1 到 9999。月份使用 1 到 12,而不是 Date 的 0 基索引。输入必须是整数,字符串 “2024” 会被拒绝。返回值不包含时间与时区信息。

验证方式

断言 isLeapYear(2024) 为 true,isLeapYear(1900) 为 false,isLeapYear(2000) 为 true。daysInMonth(2024, 2) 返回 29,daysInMonth(2023, 2) 返回 28。月份 0 或 13 抛 RangeError,年份 0 抛 RangeError,小数年份抛 RangeError。四月应返回 30 天。