gpt4 book ai didi

java - java中如何在指定时间自动执行函数

转载 作者:行者123 更新时间:2023-12-01 23:26:41 45 4
gpt4 key购买 nike

我有一个要求,我需要在用户设置的指定时间执行一个函数。该函数包含从数据库生成 pdf 文件并将其保存到计算机本地驱动器中的代码。这里的时间需要由用户设置,并且可以根据自己的要求进行更改。

我从未使用过计时器类..

我有一个从谷歌获得的代码片段,但我不知道如何在此代码中设置函数执行的用户特定时间详细信息..

这是代码片段..

class ReportGenerator extends TimerTask {

public void run() {
System.out.println("Generating report");
//TODO generate report
}
}

class MainApplication {

public static void main(String[] args) {
Timer timer = new Timer();
Calendar date = Calendar.getInstance();
date.set(
Calendar.DAY_OF_WEEK,
Calendar.SATURDAY);
date.set(Calendar.HOUR, 0);
date.set(Calendar.MINUTE, 0);
date.set(Calendar.SECOND, 0);
date.set(Calendar.MILLISECOND, 0);
// Schedule to run every Sunday in midnight
timer.schedule(
new ReportGenerator(),
date.getTime(),
1000 * 60 * 60 * 24 * 7);
}

}

我也不明白这个代码片段的含义..这意味着什么??

 timer.schedule(
new ReportGenerator(),
date.getTime(),
1000 * 60 * 60 * 24 * 7);
}

在上面的代码片段中,给定的函数将在每个星期六执行。

请帮助我。衷心欢迎任何想法......提前致谢..

最佳答案

好吧,我研究了一下 Timer 类,发现你的方法几乎是正确的。您需要稍微编辑一下代码才能获得所需的功能。

Calendar calendar = Calendar.getInstance();
date.set(Calendar.DAY_OF_WEEK, getUserInputDay()); //
calendar.set(Calendar.HOUR_OF_DAY, getUserInputHour());
calendar.set(Calendar.MINUTE, getUserInputMinute());
calendar.set(Calendar.SECOND, getUserInputSeconds());
Date time = calendar.getTime();

timer = new Timer();
timer.schedule(new ReportGenerator(), time);

这将启动一个计时器,在规定的时间启动“ReportGenerator”。您必须自己弄清楚如何获取用户的输入(应该相当简单!)

关于java - java中如何在指定时间自动执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19875402/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com