estableceDiferenciaEntreFechasEnHs static method

double estableceDiferenciaEntreFechasEnHs({
  1. required String fechaInicial,
  2. required String fechaFinal,
})

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
}