Hola como hago para sumar dias a una fecha, por ejemplo:
tengo 13/02/2002 sumarle 5 dias y deberia devolverme 18/02/2002.
en el visual basic existe la funcion Dateadd, existe algo equivalente el JavaScript
Gracias.
Nilton
| |||
Sumar Dias Hola como hago para sumar dias a una fecha, por ejemplo: tengo 13/02/2002 sumarle 5 dias y deberia devolverme 18/02/2002. en el visual basic existe la funcion Dateadd, existe algo equivalente el JavaScript Gracias. Nilton |
| ||||
Re: Sumar Dias Hola, para eso debes usar esta función. Te dejo la diocumentación completa: Función DateAdd Descripción Devuelve una fecha a la que se agregó un intervalo de tiempo especificado. Sintaxis DateAdd(intervalo, número, fecha) La sintaxis de la función DateAdd tiene las siguientes partes: Parte Descripción intervalo Requerido. Expresión de cadena que es el intervalo que desea agregar. Consulte la sección Valores para saber cuáles son los valores permitidos. número Requerido. Expresión numérica que es el número de intervalo que desea agregar. La expresión numérica puede ser positiva, para fechas futuras, o negativas, para fechas pasadas. fecha Requerido. Variant o literal que representa la fecha a la que se agrega intervalo. Valores El argumento intervalo puede tener los siguientes valores: Valor Descripción yyyy Año q Trimestre m Mes y Día del año d Día w Día de la semana ww Semana del año h Hora n Minuto s Segundo Comentarios Puede usar la función DateAdd para sumar o restar un intervalo de tiempo especificado a una fecha. Por ejemplo, puede usar DateAdd para calcular una fecha 30 días a partir de hoy o una hora 45 minutos desde ahora. Para agregar días a fecha, puede usar Día del año ("y"), Día ("d") o Día de la semana ("w"). La función DateAdd no devolverá una fecha no válida. El siguiente ejemplo suma un mes al 31 de enero: Nuevafecha = DateAdd("m", 1, "31-Ene-95") En este caso, DateAdd devuelve 28-Feb-95, no 31-Feb-95. Si fecha es 31-Ene-96, devuelve 29-Feb-96 porque 1996 es un año bisiesto. Si la fecha calculada es anterior al año 100, se produce un error. Si el número no es un valor de tipo Long, se redondea al número entero más cercano antes de evaluarlo. Saludos. ;) <a href="http://www.laventanita.net/" target="_blank"> <img src="http://www.breogan.org/images/Aston.gif" border="0" alt="La Ventanita.net - Lo imprescindible en la red"></a> |
| |||
Re: Sumar Dias gracias Aston, pero si se como se utiliza la funcion Dateadd, mi pregunta es si existe una equivalente en javascript o puedo utilizar esta misma funcion, ya que por mas que he estado buscando no lo he visto. de todas maneras gracias |
| ||||
Re: Sumar Dias Niltonc prueba esto: <html> <head> <script language="JavaScript"> var aFinMes = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); function finMes(nMes, nAno){ return aFinMes[nMes - 1] + ((nAno % 4) == 0? 1: 0); } function addToDate(sFec0, sInc){ var nDia = Number(sFec0.substr(0, 2)); var nMes = Number(sFec0.substr(3, 2)); var nAno = Number(sFec0.substr(6, 4)); nDia += Number(sInc); while (nDia > finMes(nMes, nAno)){ nDia -= finMes(nMes, nAno); nMes += 1; if (nMes == 13){ nMes = 1; nAno += 1; } } return String(nDia) + "/" + String(nMes) + "/" + String(nAno); } function recalcF1(){ with (document.formulario){ fecha1.value = addToDate(fecha0.value, increm.value); } } </script> </head> <body> <form name="formulario"> <table> <tr> <td align="right"> Coloque una fecha válida (dd/mm/aaaa): </td> <td> <input type="text" name="fecha0" size="10"> </td> </tr> <tr> <td align="right"> Incremento: </td> <td> <input type="text" name="increm" size="3"> </td> </tr> <tr> <td align="right"> Resultado (dd/mm/aaaa): </td> <td> <input type="text" name="fecha1" disabled size="10"> </td> </tr> <tr> <td colspan="2" align="center"> <input type="button" onclick="recalcF1()" value="Calcular"> </td> </tr> </table> </form> </body> </html> Suerte. |
| ||||
Re: Sumar Dias Versión modificada para que el resultado quede en el formato dd/mm/aa: <html> <head> <script language="JavaScript"> var aFinMes = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); function finMes(nMes, nAno){ return aFinMes[nMes - 1] + ((nAno % 4) == 0? 1: 0); } function padNmb(nStr, nLen){ var sRes = String(nStr); var sCeros = "0000000000"; return sCeros.substr(0, nLen - sRes.length) + sRes; } function addToDate(sFec0, sInc){ var nDia = Number(sFec0.substr(0, 2)); var nMes = Number(sFec0.substr(3, 2)); var nAno = Number(sFec0.substr(6, 4)); nDia += Number(sInc); while (nDia > finMes(nMes, nAno)){ nDia -= finMes(nMes, nAno); nMes += 1; if (nMes == 13){ nMes = 1; nAno += 1; } } return padNmb(nDia, 2) + "/" + padNmb(nMes, 2) + "/" + padNmb(nAno, 4); } function recalcF1(){ with (document.formulario){ fecha1.value = addToDate(fecha0.value, increm.value); } } </script> </head> <body> <form name="formulario"> <table> <tr> <td align="right"> Coloque una fecha válida (dd/mm/aaaa): </td> <td> <input type="text" name="fecha0" size="10"> </td> </tr> <tr> <td align="right"> Incremento: </td> <td> <input type="text" name="increm" size="3"> </td> </tr> <tr> <td align="right"> Resultado (dd/mm/aaaa): </td> <td> <input type="text" name="fecha1" disabled size="10"> </td> </tr> <tr> <td colspan="2" align="center"> <input type="button" onclick="recalcF1()" value="Calcular"> </td> </tr> </table> </form> </body> </html> Avísame si no te funciona. |
| |||
Una sola modificacion a la version de Kaopectate, pues cuando se suman dias a una fecha que pasa de un mes a otro hay problemas con el año biciesto... por lo que solo hay que modificar la funcion FinMes que quedaria de la siguiente manera. function FinMes(nMes, nAno){ var nMesBis = 0; if (nMes == 2 && (nAno % 4) == 0) nMesBis = 1; return eval(aFinMes[nMes - 1] + nMesBis); } El codigo esta extendido para hacerlo mas comprensible. |