1

我正在使用 Groovy。我已经解析了一个文本文件,其行包含信息,包括日期。我现在只有日期,例如:

08:13:16,121
09:32:42,102
10:43:47,153

我想比较这些值之间的增量;我怎样才能做到这一点?即,我想从第二个中减去第一个,并将该值与第三个和第二个之间的差值进行比较。我将保存最大的价值。

4

2 回答 2

5

您可以使用TimeCategory将时差方法添加到日期类:

import groovy.time.TimeCategory

use(TimeCategory) {
    println date1 - date2
}

从另一个日期中减去一个日期将产生一个TimeDuration对象。

于 2011-11-10T20:05:00.503 回答
1

假设您的时间在一个文件times.txt中,您可以这样做:

def parseDate = { str -> new Date().parse( 'H:m:s,S', str ) }

def prevDate = null
def deltas = []

use( groovy.time.TimeCategory ) {
  new File( 'times.txt' ).eachLine { line ->
    if( line ) {
      if( !prevDate ) {
        prevDate = parseDate( line )
      }
      else {
        def nextDate = parseDate( line )
        deltas << nextDate - prevDate
        prevDate = nextDate
      }
    }
  }
}
println deltas
println( deltas.max { it.toMilliseconds() } )

这将打印:

[1 hours, 19 minutes, 25.981 seconds, 1 hours, 11 minutes, 5.051 seconds]
1 hours, 19 minutes, 25.981 seconds
于 2011-11-10T20:25:45.967 回答