public String DateDifference(DateTime pFechaUno, DateTime pFechaDos)
{
try
{
int[] vDiasMes = new int[12] { 31, -1, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
DateTime vFechaOrigen;
DateTime vFechaDestino;
int vAnio;
int vMes;
int vDia;
int vIncremento;
//Determinamos cual es la fecha menor
if (pFechaUno > pFechaDos)
{
vFechaOrigen = pFechaDos;
vFechaDestino = pFechaUno;
}
else
{
vFechaOrigen = pFechaUno;
vFechaDestino = pFechaDos;
}
// Calculamos los dias
vIncremento = 0;
if (vFechaOrigen.Day > vFechaDestino.Day)
{
vIncremento = vDiasMes[vFechaOrigen.Month - 1];
}
if (vIncremento == -1)
{
if (DateTime.IsLeapYear(vFechaOrigen.Year))
{
// Para los años bisiestos
vIncremento = 29;
}
else
{
vIncremento = 28;
}
}
if (vIncremento != 0)
{
vDia = (vFechaDestino.Day + vIncremento) - vFechaOrigen.Day;
vIncremento = 1;
}
else
{
vDia = vFechaDestino.Day - vFechaOrigen.Day;
}
//Calculamos los meses
if ((vFechaOrigen.Month + vIncremento) > vFechaDestino.Month)
{
vMes = (vFechaDestino.Month + 12) - (vFechaOrigen.Month + vIncremento);
vIncremento = 1;
}
else
{
vMes = (vFechaDestino.Month) - (vFechaOrigen.Month + vIncremento);
vIncremento = 0;
}
//Calculamos los años
vAnio = vFechaDestino.Year - (vFechaOrigen.Year + vIncremento);
return vAnio + " Año(s), " + vMes + " mes(es), " + vDia + " día(s)";
}
catch (Exception ex)
{
throw ex;
}
}
ByteRide busca generar un punto de encuentro para desarrolladores y entusiastas de la computación, donde se hallen soluciones sencillas a problemas sencillos. Queremos lograr un compilado de trucos, herramientas, tutoriales y respuestas a problemas de programación; Iniciaremos con javascript, html, php, c#, asp.net, sql, pero siempre buscando ampliar nuestros conocimientos.
martes, 28 de junio de 2011
Obtener la diferencia en días, meses y años entre dos fechas.
Un problema frecuente es obtener la diferencia en días, meses y años entre dos fechas, el siguiente método realizado en C# puede brindar una ayuda. este método es la adaptación en español de un trozo de código que ya se encuentra en linea.
Suscribirse a:
Enviar comentarios (Atom)
Este es el único fragmento de código que he encontrado y que explique a la perfección lo que estaba buscando.
ResponderEliminarMuchas gracias por compartir.
Excelente!!! Esto es lo que necesito. Gracias por compartirlo.
ResponderEliminarEl codigo esta excelente.
ResponderEliminarUna inquietud, para llamar esta clase DateDifference , ¿cuales serian los siguientes pasos?
Responder , por favor.
Instanciar un objeto?¿