月份枚举-Month
# 介绍
Month是Hutool中表示月份的枚举类,与Calendar类中的月份int值一一对应,提供了丰富的月份相关操作,使月份的处理更加便捷和类型安全。
# 主要功能
# 1. 月份枚举的获取
// 通过Calendar常量获取Month枚举
Month month = Month.of(Calendar.JANUARY);
// 通过月份数字获取Month枚举(1-12)
Month month = Month.of(1); // JANUARY
Month month = Month.of(12); // DECEMBER
// 获取当前月份
Month currentMonth = Month.now();
# 2. 月份属性的获取
// 获取月份数字(1-12)
int monthValue = Month.JANUARY.getValue(); // 1
// 获取月份名称(英文)
String monthName = Month.JANUARY.name(); // JANUARY
// 获取月份的显示名称
String displayName = Month.JANUARY.getDisplayName(); // 一月
// 获取月份的英文简写
String shortName = Month.JANUARY.getShortName(); // Jan
# 3. 月份天数相关
// 获取月份的天数(非闰年)
int days = Month.JANUARY.getLastDay(false); // 31
int days = Month.FEBRUARY.getLastDay(false); // 28
// 获取月份的天数(闰年)
int days = Month.FEBRUARY.getLastDay(true); // 29
// 获取指定年份月份的天数
int days = Month.FEBRUARY.getLastDay(2024); // 29(2024年是闰年)
// 判断月份是否有31天
boolean isLongMonth = Month.JANUARY.isLongMonth(); // true
boolean isLongMonth = Month.APRIL.isLongMonth(); // false
// 判断月份是否有30天
boolean isShortMonth = Month.APRIL.isShortMonth(); // true
boolean isShortMonth = Month.FEBRUARY.isShortMonth(); // false
# 4. 月份的增减
// 获取下一个月
Month nextMonth = Month.JANUARY.next(); // FEBRUARY
Month nextMonth = Month.DECEMBER.next(); // JANUARY
// 获取上一个月
Month lastMonth = Month.FEBRUARY.previous(); // JANUARY
Month lastMonth = Month.JANUARY.previous(); // DECEMBER
// 获取指定个月后的月份
Month futureMonth = Month.JANUARY.offset(3); // APRIL
// 获取指定个月前的月份
Month pastMonth = Month.APRIL.offset(-3); // JANUARY
# 5. 月份比较
// 比较两个月份
int compareResult = Month.JANUARY.compareTo(Month.FEBRUARY); // -1
// 判断是否在指定月份之前
boolean isBefore = Month.JANUARY.isBefore(Month.FEBRUARY); // true
// 判断是否在指定月份之后
boolean isAfter = Month.FEBRUARY.isAfter(Month.JANUARY); // true
# 适用场景
Month枚举适用于以下场景:
- 需要表示和处理月份时
- 需要进行月份的比较和计算时
- 需要获取月份天数时
- 需要进行月份的增减操作时
- 需要类型安全的月份表示时
通过Month枚举,开发者可以更加便捷和类型安全地处理月份相关的业务逻辑,避免了直接使用int值可能带来的错误。