2016-03-06 2 views
-1

Я сделал простое приложение, которое проверяет знание пользователем таблицы умножения. Он случайным образом генерирует несколько уравнений, проверяет каждый результат и отображает общий балл в конце (сколько правильных/неправильных). Я попытался добавить какой-то «секундомер» к нему, чтобы узнать, сколько времени требуется для завершения теста, но я потерпел неудачу: -P Не могли бы вы дать мне какие-либо советы?«Секундомер» подсчет секунд (начиная с -> до)

System.out.println("START!"); 
for (int i = 0; i < 4; i++) { 
    Random rd = new Random(); 
    int a = rd.nextInt(7) + 2; 
    int b = rd.nextInt(7) + 2; 
    System.out.print(a + "*" + b + "= "); 
    int result = sc.nextInt(); 
    if (result == a * b) { 
     System.out.println("^OK"); 
     correct++; 
    } else { 
     System.out.println("^NOPE"); 
     incorrect++; 
    } 
} 
System.out.println("\nCorrect: " + correct + "\tIncorrect: " + incorrect); 
+0

Я не вижу вашу попытку добавления «секундомера». –

+0

Я пробовал делать это, как @Yassin Hajaj написал ниже, но с Date() вместо текущего времени. Кроме того, я читал о классе Timer, но я узнал, что он используется для составления расписания, не считая времени. Плохо я не упоминал об этом раньше. – Adrian

ответ

0

Вы можете использовать System#currentTimeMillis

long begin = System.currentTimeMillis();  
// for loop 
long end = System.currentTimeMillis(); 
long time = end - begin; 

Или System#nanoTime

long begin = System.nanoTime(); 
// for loop 
long end = System.nanoTime(); 
long time = end - begin; 

Оба метода возвращают long, что вы можете работать с.


Другим решением является работа с LocalTime, если вы используете

LocalTime begin = LocalTime.now(); 
// for loop 
LocalTime end = LocalTime.now(); 
long time = begin.until(end, ChronoUnit.MILLIS); 
+0

Он работает! Благодарю. Я пытался сделать что-то подобное, но с Date вместо currentTime ... – Adrian

+0

@Daze Добро пожаловать :) Не стесняйтесь повышать и отмечать ответ как принятый –

Смежные вопросы