0

因此,如果我希望我的一项活动在特定时间和日期做某事,我该怎么做?任何快速描述都会有所帮助。我对此仍然很陌生,非常感谢任何帮助。

4

2 回答 2

1

如果您希望您的活动在一些 interwell 之间运行,您可以使用 java 中的线程。如果活动想在某个预定时间运行,您可以使用 Java 中的 TimerTask 类。

import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public 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.SUNDAY
    );
    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
    );
   // Schedule to run every Monday in midnight
   date.set(
      Calendar.DAY_OF_WEEK,
      Calendar.MONDAY
    );
    date.set(Calendar.HOUR, 0);
    date.set(Calendar.MINUTE, 0);
    date.set(Calendar.SECOND, 0);
    date.set(Calendar.MILLISECOND, 0);

    timer.schedule(
      new ReportGenerator(),
      date.getTime(),
      1000 * 60 * 60 * 24 * 7
    );
  }
}   
于 2013-08-31T17:37:03.123 回答
0

这是一个 Python 程序,可以在秒内准确地执行 my_func 函数中的任何操作。在此示例中,它明天下午 12 点运行,但 target_date 可以更改为任何未来日期。

from datetime import datetime
from threading import Timer

today = datetime.today()
target_date = today.replace(day=today.day + 1, hour=12, minute=0, second=0, microsecond=0)
delta_t = target_date - today

microSecs=delta_t.seconds * 1000000 + delta_t.microseconds
secs = microSecs / 1000000

def my_func():
    print("hello world")

t = Timer(secs, my_func)
t.start()
于 2021-07-28T16:41:41.173 回答