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 .