2013-05-13 5 views
-4

Вот простой тест: я пытаюсь увеличить текущую метку времени на 1 секунду в цикле. Результат не тот, который я ожидаю.Увеличение времени на одну секунду в цикле

public class TimeTest { 
    public static void main(String[] args) { 
     Calendar cal = Calendar.getInstance(); 
     for (int i = 0; i < 10; i++) { 
      cal.add(Calendar.SECOND, i); 
      System.out.println("Updated = " + cal.getTime()); 
     } 
    } 
} 

Вместо аккуратных 1-секундных приращений я получаю приращения от где-то между 5 секундами до 1 секунды.

Updated = Mon May 13 15:12:45 PDT 2013 
Updated = Mon May 13 15:12:46 PDT 2013 
Updated = Mon May 13 15:12:48 PDT 2013 
Updated = Mon May 13 15:12:51 PDT 2013 
Updated = Mon May 13 15:12:55 PDT 2013 
Updated = Mon May 13 15:13:00 PDT 2013 
Updated = Mon May 13 15:13:06 PDT 2013 
Updated = Mon May 13 15:13:13 PDT 2013 
Updated = Mon May 13 15:13:21 PDT 2013 
Updated = Mon May 13 15:13:30 PDT 2013 
+2

Подсказка: приращения 1, 2, 3, 4, 5, 6, 7, 8 и 9 (в этом порядке!) :) –

+0

FDinoff прав. В первый раз вы добавляете 1 секунду, затем 2 секунды, затем 3 секунды, затем + x секунд ... :) –

ответ

8

Вы хотите добавить 1 вместо i на каждой итерации цикла для.

cal.add(Calendar.SECOND, 1); 
0
cal.add(Calendar.SECOND, 1); 

Просто увеличить календарь на 1 секунду вместо я секунд

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