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

Java双周薪资日期计算器:需排除周六周日的代码修改求助

解决薪资发放日期(排除周末)的Java实现方案

核心思路

  1. 采用Java 8及以上版本自带的java.time工具类处理日期,替代老旧的Date/Calendar,API更直观且线程安全
  2. 计算出目标日期后,判断是否为周六或周日,若是则自动顺延至下周一
  3. 依次计算加15、30、45、60天的日期,逐个处理周末问题

完整代码示例

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.Scanner;

public class SalaryDateCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

        // 接收用户输入日期
        System.out.print("请输入起始日期(格式:yyyy-MM-dd):");
        String inputDateStr = scanner.nextLine();

        try {
            LocalDate startDate = LocalDate.parse(inputDateStr, dateFormatter);

            // 定义需要增加的天数数组
            int[] addDaysArray = {15, 30, 45, 60};

            System.out.println("薪资发放日期(排除周末):");
            for (int days : addDaysArray) {
                LocalDate targetDate = startDate.plusDays(days);
                // 调整周末日期到下周一
                LocalDate payDate = adjustWeekend(targetDate);
                System.out.printf("加%d天:%s%n", days, payDate.format(dateFormatter));
            }
        } catch (DateTimeParseException e) {
            System.out.println("输入日期格式错误,请按照yyyy-MM-dd格式输入。");
        } finally {
            scanner.close();
        }
    }

    // 调整周末日期至下周一
    private static LocalDate adjustWeekend(LocalDate date) {
        DayOfWeek dayOfWeek = date.getDayOfWeek();
        if (dayOfWeek == DayOfWeek.SATURDAY) {
            return date.plusDays(2);
        } else if (dayOfWeek == DayOfWeek.SUNDAY) {
            return date.plusDays(1);
        }
        return date;
    }
}

代码说明

  • 日期解析与格式化:用DateTimeFormatter指定输入输出的日期格式,同时捕获DateTimeParseException处理用户输入格式错误的情况
  • 周末调整逻辑:adjustWeekend方法判断日期的星期属性,周六加2天跳转至周一,周日加1天跳转至周一,工作日直接返回原日期
  • 循环计算薪资日期:通过数组遍历需要增加的天数,逐个计算并调整,输出最终合规的薪资发放日期

运行说明

  1. 在IntelliJ IDEA中新建Java类,粘贴上述代码
  2. 运行程序后,按照提示输入格式为yyyy-MM-dd的起始日期(例如2024-05-20)
  3. 程序会输出调整后的4个薪资发放日期

内容的提问来源于stack exchange,提问作者Avighna Guha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:25:00