Java sumar meses a fecha

Hola Experto tengo un problema. Tengo un script que al ingresar una fecha te pide meses a calcular y calcula excelente pero cuando ingreso una fecha como 10/08/2011 y le digo que sume 3 meses siempre me da algo como 10/03/2011 cuando debería ser 10/11/2011. Y haciendo pruebas me di cuenta que solo pasa cuando ingreso mes 08 y mes 09. También cuabndo coloco en días 08 o 09 se vuelve loco el script.
aca el codigo:
<HTML><HEAD>
<META content="text/html; charset=windows-1252" http-equiv=Content-Type>
<SCRIPT language=JavaScript>
function cerosIzq(sVal, nPos){
var sRes = sVal;
for (var i = sVal.length; i < nPos; i++)
sRes = "0" + sRes;
return sRes;
}
function armaFecha(nDia, nMes, nAno){
var sRes = cerosIzq(String(nDia), 2);
sRes = sRes + "/" + cerosIzq(String(nMes), 2);
sRes = sRes + "/" + cerosIzq(String(nAno), 4);
return sRes;
}
function sumaMes(nDia, nMes, nAno, nSum){
if (nSum >= 0){
for (var i = 0; i < Math.abs(nSum); i++){
if (nMes == 12){
nMes = 1;
nAno += 1;
} else nMes += 1;
}
} else {
for (var i = 0; i < Math.abs(nSum); i++){
if (nMes == 1){
nMes = 12;
nAno -= 1;
} else nMes -= 1;
}
}
return armaFecha(nDia, nMes, nAno);
}
function calcula(){
var sFc0 = document.frm.fecha0.value; // Se asume válida
var nSum = parseInt(document.frm.meses.value);
var sFc1 = sFc0;
if (!isNaN(nSum)){
var nDia = parseInt(sFc0.substr(0, 2));
var nMes = parseInt(sFc0.substr(3, 2));
var nAno = parseInt(sFc0.substr(6, 4));
sFc1 = sumaMes(nDia, nMes, nAno, nSum);
}
document.frm.fecha1.value = sFc1;
}
</SCRIPT>
<META name=GENERATOR content="MSHTML 8.00.6001.18702"></HEAD>
<BODY>
<FORM name=frm>
<TABLE border=0>
<TBODY>
<TR>
<TD>
<TABLE border=1>
<TBODY>
<TR>
<TD align=right>Fecha inicial (dd/mm/aaaa) </TD>
<TD><LABEL><INPUT id=fecha0 name=fecha0> </LABEL></TD></TR>
<TR>
<TD align=right>Meses </TD>
<TD><INPUT value=0 name=meses> </TD></TR>
<TR>
<TD align=right>Fecha Final(dd/mm/aaaa) </TD>
<TD><INPUT readOnly name=fecha1> </TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=middle><INPUT onclick=calcula() value=Calcular type=button>
</TD></TR></TBODY></TABLE></FORM></BODY></HTML>
Muchas gracias! Espero tu pronta respuesta
Respuesta
1
Es una practica y tienes que montarloa mano o puedes utilizar la clase GregorianCalendar. http://download.oracle.com/javase/1.4.2/docs/api/java/util/GregorianCalendar.html

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas