Java 8 如何根据输入日期获取下个月的指定日期
Java 8 实现输入日期获取下月16号功能
核心使用Java 8提供的LocalDate类即可实现,不需要手动处理闰年、月份天数、跨年等边界情况,时间API已经自动兼容所有场景。
实现逻辑
对输入的日期执行两个操作即可:
- 调用
plusMonths(1)获取当前日期加1个月后的日期 - 调用
withDayOfMonth(16)将日期的日部分强制设置为16
完整代码示例
import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class NextMonth16thCalculator { // 可根据实际输入的日期格式调整pattern private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 入参为LocalDate类型的实现 public static LocalDate calculate(LocalDate inputDate) { return inputDate.plusMonths(1).withDayOfMonth(16); } // 入参为字符串类型日期的重载实现 public static String calculate(String inputDateStr) { LocalDate inputDate = LocalDate.parse(inputDateStr, DATE_FORMATTER); return calculate(inputDate).format(DATE_FORMATTER); } public static void main(String[] args) { // 测试需求示例中的所有用例 System.out.println(calculate("2021-11-13")); // 输出2021-12-16 System.out.println(calculate("2021-11-14")); // 输出2021-12-16 System.out.println(calculate("2021-11-15")); // 输出2021-12-16 System.out.println(calculate("2021-12-02")); // 输出2022-01-16 System.out.println(calculate("2021-12-03")); // 输出2022-01-16 System.out.println(calculate("2022-01-03")); // 输出2022-02-16 System.out.println(calculate("2022-01-04")); // 输出2022-02-16 } }
内容的提问来源于stack exchange,提问作者user3332171
相关产品推荐
相关产品推荐

