Я хочу выполнить задачу, используя Java в определенный час .Мой код работает, но выглядит не очень хорошо.Я сравниваю две строки.Я пытался сравнить даты, используя getTimeInMills (), но цифры не совпадают.
Вот мой код:
import java.util.Calendar;
class Voter {
Calendar current,deadline;
boolean keepGoing = true;
public static void main(String[] args) {
Voter strzal = new Voter();
strzal.shoot();
}
public void shoot() {
deadline = Calendar.getInstance();
deadline.set(2011,6,21,11,20,00);
while (keepGoing) {
// wait 1 second
try {
Thread.sleep(1000);
System.out.print(".");
} catch (InterruptedException ex) { ex.printStackTrace(); }
current = Calendar.getInstance();
if (deadline.getTime().toString().equals(current.getTime().toString())) {
System.out.println("Got it!");
keepGoing = false;
} // end of if
} // end of while
} // end of shoot() method
}
Я работаю в цикле, ожидая, что текущее время будет равно крайнему сроку (в примере я установил его на 21 июля 2011 г. 11:10).
Как я могу улучшить свой код? Я быМне нравится использовать, например, метод compareTo () или getTimeInMills () из класса Calendar, но я не могу правильно установить крайний срок.
Заранее спасибо.