public void CalcularAntiguedadTest() { DateTime fecha_inicial = new DateTime(2001, 03, 01); DateTime fecha_final = new DateTime(2014, 12, 31); ComponenteCalculos comp = new ComponenteCalculos(); RespuestaFecha respuesta = comp.CalcularAntiguedad(fecha_inicial, fecha_final); Assert.AreEqual(13, respuesta.Anio); Assert.AreEqual(9, respuesta.Mes); Assert.AreEqual(30, respuesta.Dia); }
public RespuestaFecha CalcularAntiguedad(DateTime fecha_inicial, DateTime fecha_final) { RespuestaFecha retorno = new RespuestaFecha(); DateTime fecha_auxiliar = new DateTime(); /* Rectifico las fechas si se pasan en un orden incorrecto */ if (fecha_inicial > fecha_final) { fecha_auxiliar = fecha_final; fecha_final = fecha_inicial; fecha_inicial = fecha_auxiliar; } retorno.Anio = fecha_final.Year - fecha_inicial.Year; /* Evalúo si el año es el mismo en ambas fechas*/ fecha_auxiliar = fecha_inicial.AddMonths(12 * retorno.Anio); if (fecha_auxiliar > fecha_final) { retorno.Anio = retorno.Anio - 1; } retorno.Mes = fecha_final.Month - fecha_inicial.Month; if (retorno.Mes < 0) { retorno.Mes = retorno.Mes + 12; } retorno.Dia = fecha_final.Day - fecha_inicial.Day; if (retorno.Dia < 0) { retorno.Dia = retorno.Dia + this.ObtenerCantidadDeDiasDelMes(fecha_inicial); } if (fecha_final.Day < fecha_inicial.Day) { if (retorno.Mes == 0) { retorno.Mes = 11; } else { retorno.Mes = retorno.Mes - 1; } } return(retorno); }