我有一个Java程序,它将每天手动运行。
现在,我想每个星期创建一个excel文件,以将每周的所有任务写入其中

我知道每天如何创建这样的文件:

if(!IoUtils.fileExist("indicators-" + IoUtils.getCurrentDate() + ".xls")){
    IoUtils.createIndicFile("indicators-" + IoUtils.getCurrentDate() + ".xls");
}
else IoUtils.INDIC_FILEPATH = "indicators-" + IoUtils.getCurrentDate() + ".xls";


这是给我特定格式的当前功能的函数:

// IoUtils class
public static String getCurrentDate(){
    LocalDateTime ldt = LocalDateTime.now();
    return DateTimeFormatter.ofPattern("dd-MM-yyyy", Locale.ENGLISH).format(ldt);
}


那么,如何才能更改为每周仅创建一个文件?

我还希望在文件名中包含月份和星期几,如下所示:

// first monday of january 2018
name = "indicators-week1-01-2018"

// second monday of january 2018
name = "indicators-week2-01-2018"


谢谢

最佳答案

Java提供了java.util.concurrent.ScheduledThreadPoolExecutor,它可以另外计划命令以在给定的延迟后运行或定期执行。

Scheduler.scheduleWithFixedDelay(task, StartDelay, repeatInterval, TimeUnit.MINUTES);

10-04 17:05