【问题标题】:Adding days to Date periodically in Java在 Java 中定期添加日期到日期
【发布时间】:2019-08-09 08:58:19
【问题描述】:

我想定期为当前日期添加天数。 例如,我每经过 10 秒,我想在今天的日期上加 1 天。 08/09/2019 10 秒后变成 08/10/2019...我已经有一个工作计时器,我只是不知道如何实现添加天数部分

TimerTask task = new TimerTask() {
    @Override
    public void run() {
        day = day + 1;
        model.setDay(day);
        Calendar c = Calendar.getInstance();
        if(model.getDay() ==1)
            c.setTime(date);

        Calendar d = Calendar.getInstance();
        c.add(Calendar.DAY_OF_MONTH, 1);
        d.add(Calendar.DAY_OF_MONTH, 0);

        String currentDate = dates2.format(c.getTime());
        String currentDate2 = dates2.format(d.getTime());
        model.setUpdateDate(currentDate);
        model.setUpdateDate2(currentDate2);

    }
};
Timer timer = new Timer();
long delay = 10000;
long intervalPeriod = 10000;

【问题讨论】:

  • 嗨,欢迎来到 SO。我们乐于提供帮助,但我们需要有关您的问题的更多信息。你试过什么?你的代码是什么?请在此处阅读并更新您的问题:stackoverflow.com/help/how-to-ask
  • 嗨,您能否提供有关您的查询的更多信息。如果可能,请发布您尝试过的代码。
  • 你已经实现了工作定时器,很好。但是为什么不在这里发布代码,以便这里的人可以帮助您添加天数部分?
  • 你必须使用 java.util.Date 等吗?如果您可以使用 java.time 类型,您会发现使用它们要好得多
  • 不,我不是在问你是否导入了它们 - 我是在问你是否必须使用这些,或者你是否可以使用更现代的类型。

标签: java days date


【解决方案1】:

您应该使用java.time 类型而不是DateCalendar,它们自Java 8 以来被视为遗留类型

这里有一个可能适合你的例子:

public class CountingDays {

    private LocalDate date = LocalDate.now();

    public static void main(String[] args) {

        CountingDays countingDays = new CountingDays();

        TimerTask task = new TimerTask() {

            @Override
            public void run() {
                countingDays.date = countingDays.date.plusDays(1);
                System.out.println(countingDays.date);
            }
        };

        Timer timer = new Timer();
        long delay = 0;
        long intervalPeriod = 10_000;

        timer.schedule(task, delay, intervalPeriod);
    }
}

【讨论】:

    猜你喜欢
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 2011-10-15
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2021-04-26
    相关资源
    最近更新 更多