java - 获取 future 的双周日期

标签 java date math calendar

我的双周付款从 2015 年 1 月 1 日开始(这是我的 Date 对象中的内容,顺便说一句,这是星期四)。

我如何知道我必须在 2018 年 5 月支付第一笔付款? (我不在乎一个月内第二次或第三次付款)。

我会展示我所做的工作,但我无法开始思考如何思考这个问题。

最佳答案

如果您更喜欢在没有任何循环或迭代的情况下执行此操作,则只需要一点技巧:

    LocalDate firstPayment = LocalDate.of(2015, Month.JANUARY, 1);
    // The first payment in May 2018 must be within the first 14 days of May.
    long weeksAfterFirst
            = ChronoUnit.WEEKS.between(firstPayment, LocalDate.of(2018, Month.MAY, 14));
    // We need an even number of weeks
    if (weeksAfterFirst % 2 != 0) {
        weeksAfterFirst--;
    }
    LocalDate firstInMay = firstPayment.plusWeeks(weeksAfterFirst);
    System.out.println(firstInMay);

这打印

2018-05-03

对于如何着手这样一项任务,第一步是研究日期和时间库以了解各种可能性。 教程链接: Oracle tutorial: Date Time解释如何使用 java.time

关于java - 获取 future 的双周日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50110744/

相关文章:

java - 有没有办法将 JPanel 添加到 JTable 的标题中?

java - 使用 Guice 的逆向工程项目的策略?

php - 使用这些表的房间阻塞

c# - 这个日期可以自动转换吗?

Java 将 unixtime 转换为日期,给出错误的结果

algorithm - 分析给定程序

algorithm - 将平面网格变形为球体

java - 如何进行同步 Web 服务调用

java - 无法执行 Junit 参数化测试执行

MySQL Math —— INTEGER 和 FLOAT 哪个更快?