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?¿