星期枚举-Week
# 介绍
Week是Hutool中表示星期的枚举类,与Calendar类中的星期int值一一对应,提供了丰富的星期相关操作,使星期的处理更加便捷和类型安全。
# 主要功能
# 1. 星期枚举的获取
// 通过Calendar常量获取Week枚举
Week week = Week.of(Calendar.MONDAY);
// 通过星期数字获取Week枚举(1-7,周日为1)
Week week = Week.of(1); // SUNDAY
Week week = Week.of(2); // MONDAY
// 获取当前星期
Week currentWeek = Week.now();
# 2. 星期属性的获取
// 获取星期数字(1-7,周日为1)
int weekValue = Week.MONDAY.getValue(); // 2
// 获取星期名称(英文)
String weekName = Week.MONDAY.name(); // MONDAY
// 获取星期的显示名称
String displayName = Week.MONDAY.getDisplayName(); // 星期一
// 获取星期的英文简写
String shortName = Week.MONDAY.getShortName(); // Mon
// 获取星期的中文简写
String chineseShortName = Week.MONDAY.getChineseShortName(); // 一
# 3. 星期的增减
// 获取下一天
Week nextDay = Week.MONDAY.next(); // TUESDAY
Week nextDay = Week.SATURDAY.next(); // SUNDAY
// 获取前一天
Week lastDay = Week.TUESDAY.previous(); // MONDAY
Week lastDay = Week.SUNDAY.previous(); // SATURDAY
// 获取指定天后的星期
Week futureDay = Week.MONDAY.offset(3); // THURSDAY
// 获取指定天前的星期
Week pastDay = Week.THURSDAY.offset(-3); // MONDAY
# 4. 星期比较
// 比较两个星期
int compareResult = Week.MONDAY.compareTo(Week.TUESDAY); // -1
// 判断是否在指定星期之前
boolean isBefore = Week.MONDAY.isBefore(Week.TUESDAY); // true
// 判断是否在指定星期之后
boolean isAfter = Week.TUESDAY.isAfter(Week.MONDAY); // true
# 5. 其他常用功能
// 判断是否为工作日
boolean isWeekday = Week.MONDAY.isWeekday(); // true
boolean isWeekday = Week.SATURDAY.isWeekday(); // false
// 判断是否为周末
boolean isWeekend = Week.SATURDAY.isWeekend(); // true
boolean isWeekend = Week.MONDAY.isWeekend(); // false
// 获取所有工作日
List<Week> weekdays = Week.getWeekdays(); // [MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY]
// 获取所有周末
List<Week> weekends = Week.getWeekends(); // [SATURDAY, SUNDAY]
# 适用场景
Week枚举适用于以下场景:
- 需要表示和处理星期时
- 需要进行星期的比较和计算时
- 需要判断是否为工作日或周末时
- 需要类型安全的星期表示时
- 需要获取星期的各种名称时
通过Week枚举,开发者可以更加便捷和类型安全地处理星期相关的业务逻辑,避免了直接使用int值可能带来的错误。