Ver Mensaje Individual
  #107 (permalink)  
Antiguo 18/02/2003, 17:48
Avatar de Kaopectate
Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
107.- Sumar (o restar) días a una fecha

P: ¿Como puedo sumar o restar días a una fecha?

R: [ver ejemplo]

Código PHP:
<html>
<
head>
 <
script language="JavaScript">

  var 
aFinMes = new Array(312831303130313130313031);

  function 
finMes(nMesnAno){
   return 
aFinMes[nMes 1] + (((nMes == 2) && (nAno 4) == 0)? 10);
  }

   function 
padNmb(nStrnLensChr){
    var 
sRes String(nStr);
    for (var 
0nLen String(nStr).lengthi++)
     
sRes sChr sRes;
    return 
sRes;
   }

   function 
makeDateFormat(nDaynMonthnYear){
    var 
sRes;
    
sRes padNmb(nDay2"0") + "/" padNmb(nMonth2"0") + "/" padNmb(nYear4"0");
    return 
sRes;
   }
   
  function 
incDate(sFec0){
   var 
nDia parseInt(sFec0.substr(02), 10);
   var 
nMes parseInt(sFec0.substr(32), 10);
   var 
nAno parseInt(sFec0.substr(64), 10);
   
nDia += 1;
   if (
nDia finMes(nMesnAno)){
    
nDia 1;
    
nMes += 1;
    if (
nMes == 13){
     
nMes 1;
     
nAno += 1;
    }
   }
   return 
makeDateFormat(nDianMesnAno);
  }

  function 
decDate(sFec0){
   var 
nDia Number(sFec0.substr(02));
   var 
nMes Number(sFec0.substr(32));
   var 
nAno Number(sFec0.substr(64));
   
nDia -= 1;
   if (
nDia == 0){
    
nMes -= 1;
    if (
nMes == 0){
     
nMes 12;
     
nAno -= 1;
    }
    
nDia finMes(nMesnAno);
   }
   return 
makeDateFormat(nDianMesnAno);
  }

  function 
addToDate(sFec0sInc){
   var 
nInc Math.abs(parseInt(sInc));
   var 
sRes sFec0;
   if (
parseInt(sInc) >= 0)
    for (var 
0nInci++) sRes incDate(sRes);
   else
    for (var 
0nInci++) sRes decDate(sRes);
   return 
sRes;
  }

  function 
recalcF1(){
   
with (document.formulario){
    
fecha1.value addToDate(fecha0.valueincrem.value);
   }
  }

 
</script>
</head>
<body>
 <form name="formulario">
  <table>
   <tr>
    <td align="right">
     Fecha (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> 

Última edición por Kaopectate; 19/02/2003 a las 11:29