Java 试着让计时器每分钟都以偶数的间隔响
我习惯于编写每分钟都会让计时器关闭的代码,我希望时间间隔为偶数,这样当计时器关闭时,第二个值将为零。现在我得到了当前秒数。从中减去60,这是hpw,直到第一分钟还有很多秒。然后将其乘以1000,并将计时器惯性延迟设置为该值。现在,当nbe的计时器响起时,我得到了58秒。我再次运行该程序,得到34分,然后再次运行,得到18分 设置代码Java 试着让计时器每分钟都以偶数的间隔响,java,Java,我习惯于编写每分钟都会让计时器关闭的代码,我希望时间间隔为偶数,这样当计时器关闭时,第二个值将为零。现在我得到了当前秒数。从中减去60,这是hpw,直到第一分钟还有很多秒。然后将其乘以1000,并将计时器惯性延迟设置为该值。现在,当nbe的计时器响起时,我得到了58秒。我再次运行该程序,得到34分,然后再次运行,得到18分 设置代码 Calendar time=Calendar.getInstance(); int seconds=Calendar.SECOND; seconds=60-seco
Calendar time=Calendar.getInstance();
int seconds=Calendar.SECOND;
seconds=60-seconds; // time until next minut
len=1000*60;
Timer timer = new Timer(len, this);
timer.setInitialDelay(1000*60+seconds*1000);
timer.start();
回拨码
public void actionPerformed(ActionEvent event)
{
if (event.getID()==0)
{
int p;
double d;
p=t.daySize;
String temp;
Calendar firstTime2=Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println("starting tme");
temp=dateFormat.format(firstTime2.getTime());
System.out.println(temp);
我不确定你指的是什么定时器类。标准的Java定时器类(Java.util.Timer)将这样使用
TimerTask tt = new TimerTask() {
public void run()
{
//your current ActionEvent
}
}
Timer t = new Timer("My Timer");
t.schedule(tt, new Date(wheneverTheFirstOneIs), 1000*60);
摆动计时器没有那么精确。您可以考虑使计时器的时间片变小,但只报告计时器到达感兴趣时间的时间。所以每2秒或5秒检查一次时间,调整增量时间,并在每分钟报告一次。