calcularTiempoRestante static method

int calcularTiempoRestante({
  1. required double velocidadKmh,
  2. required double distanciaKm,
  3. CalculaDiferencia? retornoEn,
})

Funcion utilizada para calcular el tiempo faltante para llegar a un destino dada una velocidad y una distancia donde la velocidad esta en km/h y la distancia en km el parametro retornoEn es el tipo de CalculaDiferencia y representa que se quiere obtener ejempo: minutos, horas, etc... si no se pasas nada a retornoEn se devuelve en minutos

Implementation

static int calcularTiempoRestante(
    {required double velocidadKmh,
    required double distanciaKm,
    CalculaDiferencia? retornoEn}) {
  // Calcular el tiempo necesario en horas
  double tiempoHoras = distanciaKm / velocidadKmh;

  final tiempo = Duration(minutes: (tiempoHoras * 60).round());

  // aca se analiza el valor que se quiere obtener
  switch (retornoEn) {
    case CalculaDiferencia.inMiliseconds:
      return tiempo.inMilliseconds.abs();
    case CalculaDiferencia.inSeconds:
      return tiempo.inSeconds.abs();
    case CalculaDiferencia.inMinutes:
      return tiempo.inMinutes.abs();
    case CalculaDiferencia.inHours:
      return tiempo.inHours.abs();
    case CalculaDiferencia.inDays:
      return tiempo.inDays.abs();
    case CalculaDiferencia.inWeeks:
      return tiempo.inDays.abs() ~/ 7;
    case CalculaDiferencia.inMonths:
      return tiempo.inDays.abs() ~/ 30;
    case CalculaDiferencia.inYears:
      return tiempo.inDays.abs() ~/ 365;
    default:
      return tiempo.inMinutes.abs();
  }
}