Я хотел написать таймер в java. который будет делать следующее: при запуске программы запустите timer1, который остановится через 45 минут, одновременно запустите второй таймер, который остановится через 15 минут.в это время первый таймер запустится снова и повторяет вышеуказанный цикл, пока программа не выйдет из первого таймера: 45 минут (время, которое я могу использовать компьютер), второй таймер: 15 минут (время паузы), первый таймер: 45 минут (времяЯ могу использовать компьютер) второй таймер: 15 минут (время паузы) первый таймер: 45 минут (время я могу использовать компьютер) второй таймер: 15 минут (время паузы)
Я не знаю, как использоватьпоток и таймер (utils, swing), поэтому я попытался использовать while (true), но процессор идет вверх.вот мой текущий код
static int getMinute(){
Calendar cal=Calendar.getInstance();
int minute=cal.getTime().getMinutes();
return minute;
}
public static Runnable clockf(){
if (endTime>=60){
endTime=endTime-60;}
System.out.println(startTime);
System.out.println(currentTime);
System.out.println(endTime);
if(currentTime==endTime){
pauseStart=getMinute();
currentTime=getMinute();
pauseEnd=pauseStart+15;
if(currentTime==pauseEnd){
pauseStart=0;
pauseEnd=0;
startTime=getMinute();
currentTime=getMinute();
endTime=startTime+45;
}
}
else{
update();
}
return null;
}
private static void update() {
currentTime=getMinute();
System.out.println(currentTime);
}
public static void main(String[] args) {
startTime=getMinute();
currentTime=getMinute();
endTime=startTime+45;
Thread t=new Thread(clockf());
t.setDaemon(true);
t.start();
try {
Thread.currentThread().sleep(1000);//60000
} catch (InterruptedException e) {
System.err.println(e);
}
}
но это не хорошо.Есть ли способ заставить метод clockf запускаться только один раз / мин?или любой другой способ заставить этот таймер работать?