estableceDiferenciaEntreFechasEnHs static method
Devuelve la diferencia en horas (double) entre dos fechas ISO-8601. '2025-05-20T09:14:13.000Z' el valor es decimal ya que se puede dar el caso de que la diferencia sea de 1 hora y 30 minutos lo que daria como resultado 1.5 si la fecha A es mayor que la fecha B, el resultado será negativo. Si la fecha A es menor que la fecha B, el resultado será positivo. Si las fechas son iguales, el resultado será cero. Ejemplo:
String isoA = '2025-05-20T09:14:13.000Z';
String isoB = '2025-05-20T10:14:13.000Z';
double diferencia = diffHorasIso(isoA, isoB);
print(diferencia); // Imprime: 1.0
Si la fecha A es mayor que la fecha B, el resultado será negativo. Si la fecha A es menor que la fecha B, el resultado será positivo. Si las fechas son iguales, el resultado será cero. Ejemplo:
String isoA = '2025-05-20T10:14:13.000Z';
String isoB = '2025-05-20T09:14:13.000Z';
double diferencia = diffHorasIso(isoA, isoB);
print(diferencia); // Imprime: -1.0
Si las fechas son iguales, el resultado será cero. Ejemplo:
String isoA = '2025-05-20T09:14:13.000Z';
String isoB = '2025-05-20T09:14:13.000Z';
double diferencia = diffHorasIso(isoA, isoB);
print(diferencia); // Imprime: 0.0
Implementation
static double estableceDiferenciaEntreFechasEnHs(
{required String fechaInicial, required String fechaFinal}) {
final DateTime a =
DateTime.parse(fechaInicial); // Se interpreta en UTC por la “Z”
final DateTime b = DateTime.parse(fechaFinal);
// Calculamos la duración y la normalizamos a valor absoluto.
final Duration delta = b.difference(a);
final int segundos = delta.inSeconds.abs();
return segundos / 3600; // horas con decimales
}