You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 8 如何根据输入日期获取下个月的指定日期

Java 8 实现输入日期获取下月16号功能

核心使用Java 8提供的LocalDate类即可实现,不需要手动处理闰年、月份天数、跨年等边界情况,时间API已经自动兼容所有场景。

实现逻辑

对输入的日期执行两个操作即可:

  1. 调用plusMonths(1)获取当前日期加1个月后的日期
  2. 调用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 02:24:06