1

私はGroovyを使用しています。行に日付などの情報が含まれているテキストファイルを解析しました。たとえば、日付だけが表示されます。

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

これらの値のデルタを比較したい。これどうやってするの?つまり、2 番目の値から 1 番目の値を引き、その値を 3 番目と 2 番目の値の差と比較します。最大値を保存します。

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 に答える