2015-06-21 5 views
-4

Я хочу получить последнее обновленное время переменной.получить последнее обновленное время переменной - java

static Date ti; 
for (int i = 0; i <= attachedControllers.length; i++) 
{ ti = null; 

    controllers tempc = attachedControllers[i]; 
    ti = tempc.getLastUpdated(); // return the last updated time of each controllers object. 

    System.out.println("last updated of \t" + tempc.getControllerName() +"is \t"+ti); 

    Date t2 = new Date(); 

    System.out.println("Time now \t" + t2); 

    long s = (t2.getTime() - ti.getTime())/(1000 * 60); 

System.out.println("difference is \t"+s); 

}

проблема переменная хранит ти все предыдущие значения последнего обновления времени каждого контроллера объекта. и я хочу получить только последнее значение. выход здесь:

last updated of  0.0.0.0/0.0.0.0:6632is Sun Jun 21 03:38:59 AST 2015 

Time now Sun Jun 21 03:39:14 AST 2015 

difference is 0 

last updated of  0.0.0.0/0.0.0.0:6633is Sun Jun 21 03:39:04 AST 2015 

Time now Sun Jun 21 03:39:19 AST 2015 

difference is 0 

last updated of  0.0.0.0/0.0.0.0:6632is Sun Jun 21 03:38:59 AST 2015 

Time now Sun Jun 21 03:40:14 AST 2015 

difference is 1 

last updated of  0.0.0.0/0.0.0.0:6633is Sun Jun 21 03:39:04 AST 2015 

Time now Sun Jun 21 03:40:19 AST 2015 

difference is 1 

last updated of  0.0.0.0/0.0.0.0:6632is Sun Jun 21 03:40:59 AST 2015 

Time now Sun Jun 21 03:41:14 AST 2015 

difference is 0 

last updated of  0.0.0.0/0.0.0.0:6632is Sun Jun 21 03:38:59 AST 2015 // here it retrieve the first value of last updated time which is my problem. 

Time now Sun Jun 21 03:41:14 AST 2015 

difference is 2 

last updated of  0.0.0.0/0.0.0.0:6633is Sun Jun 21 03:39:04 AST 2015 

Time now Sun Jun 21 03:41:19 AST 2015 

difference is 2 

Я называю это функция, как это:

ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1); 
exec.scheduleAtFixedRate(new Runnable() 
     { 
     public void run() 
      { 
      checkControllerHealth(); 
      } 
     }, 15, 60, TimeUnit.SECONDS); 

ответ

0

Затем положить за пределами вашего автоматического повтора System.out.println. Пример:

static Date ti; 
for (int i = 0; i <= attachedControllers.length; i++) 
{ ti = null; 

    controllers tempc = attachedControllers[i]; 
    ti = tempc.getLastUpdated(); // return the last updated time of each controllers object. 
} 

System.out.println("last updated of \t" + tempc.getControllerName() +"is \t"+ti); 

Date t2 = new Date(); 

System.out.println("Time now \t" + t2); 

long s = (t2.getTime() - ti.getTime())/(1000 * 60); 

System.out.println("difference is \t"+s); 

Тогда он покажет только последнюю итерацию, которая у вас есть в вашей петле.

Я надеюсь, это будет полезно для вас!

+0

не печатает ни одной вещи: \ – user1888020

+0

@ user1888020 Вам дается некоторая ошибка? Или просто ничего не печатаете? Можете ли вы предоставить мне версию вашего кода, которая могла бы скомпилироваться? –

+0

после того, как я добавляю оператор break в цикл for, код печатает тот же вывод, что и я был написан выше, – user1888020

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

  • Нет связанных вопросов^_^