私はGroovyを使用しています。行に日付などの情報が含まれているテキストファイルを解析しました。たとえば、日付だけが表示されます。
08:13:16,121
09:32:42,102
10:43:47,153
これらの値のデルタを比較したい。これどうやってするの?つまり、2 番目の値から 1 番目の値を引き、その値を 3 番目と 2 番目の値の差と比較します。最大値を保存します。
私はGroovyを使用しています。行に日付などの情報が含まれているテキストファイルを解析しました。たとえば、日付だけが表示されます。
08:13:16,121
09:32:42,102
10:43:47,153
これらの値のデルタを比較したい。これどうやってするの?つまり、2 番目の値から 1 番目の値を引き、その値を 3 番目と 2 番目の値の差と比較します。最大値を保存します。
TimeCategoryを使用して、時差のメソッドを日付クラスに追加できます。
import groovy.time.TimeCategory
use(TimeCategory) {
println date1 - date2
}
ある日付を別の日付から減算すると、TimeDurationオブジェクトが生成されます。
あなたの時間がファイルにあると仮定すると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