public EscalaTiempo ObtenerEscalaTiempo(DateTime actual, DateTime fecha) { TimeSpan duracion = actual - fecha; EscalaTiempo escala = EscalaTiempo.NoEscala; if (Math.Abs(duracion.TotalDays / 30.436875) >= 1) { return(EscalaTiempo.Mes); } if (Math.Abs(duracion.TotalDays) >= 1) { return(EscalaTiempo.Dia); } if (Math.Abs(duracion.TotalHours) >= 1) { return(EscalaTiempo.Hora); } if (Math.Abs(duracion.TotalMinutes) >= 1) { return(EscalaTiempo.Minuto); } return(escala); }
public List <Contenedor> ProcesarString(List <string> eventos, char separador) { List <Contenedor> contenedores = new List <Contenedor>(); foreach (string evento in eventos) { string[] contenido = evento.Split(separador); if (contenido.Length == 2) { DateTime fechaActual = new DateTime(2020, 01, 01); //DateTime.Now DateTime fechaEvento = _convertidorFecha.ConvertirFecha(contenido[1]); TipoEvento tipo = _obtenedorTipoEvento.ObtenerTipoEvento(fechaActual, fechaEvento); EscalaTiempo escala = _obtenedorEscala.ObtenerEscalaTiempo(fechaActual, fechaEvento); int duracionEvento = _obtenedorDuracion.ObtenerDuracion(fechaActual, fechaEvento, escala); Contenedor contenedor = new Contenedor() { Tipo = tipo, Escala = escala, Duracion = duracionEvento, Nombre = contenido[0] }; contenedores.Add(contenedor); } } return(contenedores); }
public int ObtenerDuracion(DateTime actual, DateTime fecha, EscalaTiempo escala) { int duracionEscala = 0; TimeSpan duracion = actual - fecha; switch (escala) { case EscalaTiempo.Mes: duracionEscala = (int)Math.Abs(duracion.TotalDays / 30.436875); break; case EscalaTiempo.Dia: duracionEscala = (int)Math.Abs(duracion.TotalDays); break; case EscalaTiempo.Hora: duracionEscala = (int)Math.Abs(duracion.TotalHours); break; case EscalaTiempo.Minuto: duracionEscala = (int)Math.Abs(duracion.TotalMinutes); break; } return(duracionEscala); }
public void ObtenerEscalaTiempo_FechaNoTieneEscala_EscalaTiempoNinguna() { //Arrange DateTime actual = new DateTime(2020, 01, 01); DateTime fecha = new DateTime(2020, 01, 01); //Act EscalaTiempo escala = _obtenedorEscala.ObtenerEscalaTiempo(actual, fecha); //Assert Assert.AreEqual(EscalaTiempo.NoEscala, escala); }
public void ObtenerEscalaTiempo_FechaTieneMinuto_EscalaTiempoMinuto() { //Arrange DateTime actual = new DateTime(2020, 01, 01); DateTime fecha = new DateTime(2020, 01, 01, 00, 04, 00); //Act EscalaTiempo escala = _obtenedorEscala.ObtenerEscalaTiempo(actual, fecha); //Assert Assert.AreEqual(EscalaTiempo.Minuto, escala); }
public void ObtenerEscalaTiempo_FechaTieneHora_EscalaTiempoHora() { //Arrange DateTime actual = new DateTime(2020, 01, 01); DateTime fecha = new DateTime(2020, 01, 01, 03, 00, 00); //Act EscalaTiempo escala = _obtenedorEscala.ObtenerEscalaTiempo(actual, fecha); //Assert Assert.AreEqual(EscalaTiempo.Hora, escala); }
public void ObtenerEscalaTiempo_FechaTieneMeses_EscalaTiempoMes() { //Arrange DateTime actual = new DateTime(2020, 01, 01); DateTime fecha = new DateTime(2020, 03, 31); //Act EscalaTiempo escala = _obtenedorEscala.ObtenerEscalaTiempo(actual, fecha); //Assert Assert.AreEqual(EscalaTiempo.Mes, escala); }
public EventoFuturo(string nombre, int duracion, EscalaTiempo escala) { Nombre = nombre; Duracion = duracion; Escala = escala; }
public DateTime CalcularFechaEntrega(DateTime fechaPedido, double tiempoTranslado, EscalaTiempo escalaTiempo) { DateTime fechaEntrega = new DateTime(); switch (escalaTiempo) { case EscalaTiempo.Mes: fechaEntrega = fechaPedido.AddMonths((int)tiempoTranslado); break; case EscalaTiempo.Dia: fechaEntrega = fechaPedido.AddDays((int)tiempoTranslado); break; case EscalaTiempo.Hora: fechaEntrega = fechaPedido.AddHours((int)tiempoTranslado); break; case EscalaTiempo.Minuto: fechaEntrega = fechaPedido.AddMinutes((int)tiempoTranslado); break; } return(fechaEntrega); }