Добавление времени выполнения в Goovy с использованием класса java.sql.Time - PullRequest
0 голосов
/ 05 июля 2011

Я пытаюсь найти способ добавить время выполнения интервью в системе, над которой я работаю в Groovy.

В моем коде у меня есть ArrayList объектов java.sql.Time («времена» в приведенном ниже коде). Я хотел бы суммировать общее время интервью в ArrayList с закрытием. Но я не могу найти правильный способ добавить вместе в java.sql.Times. Таким образом, если мой ArrayList содержит времена sql «00:01:30» и «00:02:30», метод вернет «00:04:00».

def sumTime(java.util.ArrayList times) {    
  def sum = java.sql.Time.valueOf("00:00:00")        
  times.each() { x ->
    //add current list member to sum              
  }
  return sum
}

Спасибо,

Don

1 Ответ

1 голос
/ 06 июля 2011

Вы можете сделать это ( изменить , это работает как в веб-консоли, так и в консоли рабочего стола ):

import java.sql.Time

def timeList = [
  Time.valueOf( '00:01:30' ),
  Time.valueOf( '00:02:30' ),
]

def sumTime( times ) {
  long zero = Time.valueOf( '00:00:00' ).time
  new Time( zero + times.sum { it.time - zero } )
}

println sumTime( timeList )

который печатает

00:04:00

по требованию


Первоначальная проблема с этим кодом заключается в том, что в JDK Google App Engine new Time( '00:00:00' ).time возвращает 0, тогда как на бывшей JVM Sun 1.6 такой же код возвращает -3600000

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...