una transcurridos restar para fechas fecha entre edad dias contar calcular date text groovy format relative-time-span

date - transcurridos - restar un dia a una fecha db2



Cómo restar fechas el uno del otro (2)

Estoy usando Groovy. He analizado un archivo de texto cuyas líneas contienen información, incluidas las fechas. Ahora tengo las fechas, por ejemplo:

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

Quiero comparar los deltas entre estos valores; ¿Cómo puedo hacer esto? es decir, quiero restar el primero del segundo y comparar ese valor con la diferencia entre el tercero y el segundo. Guardaré el mayor valor.


Suponiendo que sus tiempos están en un archivo times.txt , puede hacer esto:

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() } )

Que se imprimirá:

[1 hours, 19 minutes, 25.981 seconds, 1 hours, 11 minutes, 5.051 seconds] 1 hours, 19 minutes, 25.981 seconds


Puede usar TimeCategory para agregar métodos para diferencias de tiempo a clases de fecha:

import groovy.time.TimeCategory use(TimeCategory) { println date1 - date2 }

Restar una fecha a otra dará como resultado un objeto TimeDuration .