Publicado em 24 de fevereiro de 2008 ás 15:37
Cria data de acordo com número de dias informado.
SCRIPT:
<script language="javascript" type="text/javascript">
//*************************************//
// SCRIPT CALCULA NÚMERO DE DIAS //
// AUTOR : Édson Kuzniewski (Br0w)//
// E-MAIL : contato@edsonk.com //
// DATA : 27/06/2007 //
// ATUALIZAÇÃO: 24/02/2008 //
// VERSÃO : 1.1.0.0 //
//*************************************//
function calculaDias(dtInicio, dias){
var flagDT = false;
var flagD = false;
var alerta="[ERROS ENCONTRADOS]=================\n\n";
if( dtInicio == null || dtInicio == ""){
alerta = alerta+'Campo [DATA INICIO] em branco!\n';
}else{
flagDT = true;
if( verificaData(dtInicio) ){
flagDT = true;
}else{
flagDT = false;
alerta = alerta+'Campo [DATA INICIO] não é uma data válida!\n';
}
}
if( dias == null || dias == ""){
alerta = alerta+'Campo [DIAS] em branco!\n';
}else{
flagD = true;
if( isInt(dias) ){
result = true;
}else{
flagD = false;
alerta = alerta+'Campo [DIAS] não é um número inteiro válido!\n';
}
}
/* Verifica data */
function verificaData(dt) {
var result = false;
var pFmt2 = 5;
var reDate1 = /^\d{1,2}\/\d{1,2}\/\d{1,4}$/;
var reDate2 = /^[0-3]?\d\/[01]?\d\/(\d{2}|\d{4})$/;
var reDate3 = /^(0?[1-9]|[12]\d|3[01])\/(0?[1-9]|1[0-2])\/(19|20)?\d{2}$/;
var reDate4 = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
var reDate5 = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/;
var reDate = reDate4;
eval("reDate = reDate" + pFmt2);
if (reDate.test(dt)) {
result = true;
} else if (dt != null && dt != "") {
result = false;
}
if (result == false) {
return false
}else{
return true
}
}
/* Verifica se é inteiro! */
function isInt(valor) {
var temp=parseInt(valor);
if (isNaN(temp)){
return false;
}else{
return valor==temp && valor.toString()==temp.toString();
}
}
if( flagDT == true && flagD == true ){
um_dia = (100*60*60*24);
diass = ((dias*um_dia)*10);
data = dtInicio.split("/");
dia = data[0];
mes = (data[1]-1);
ano = data[2];
dat = new Date(ano,mes,dia,0,0,0);
emiss = (dat.getTime()+diass);
dataFinal = new Date(emiss);
calc01 = dataFinal.toLocaleDateString();
ult = dataFinal.toLocaleDateString().split(" ");
//[ DIA ]====================================\
diaN="";
if(ult[1] < 10){
diaN="0"+ult[1];
}else{
diaN=ult[1];
}
//===========================================/
//[ MES ]====================================\
mesN="";
if(ult[3] == "janeiro"){ mesN="01"; }
if(ult[3] == "fevereiro"){ mesN="02"; }
if(ult[3] == "março"){ mesN="03"; }
if(ult[3] == "abril"){ mesN="04"; }
if(ult[3] == "maio"){ mesN="05"; }
if(ult[3] == "junho"){ mesN="06"; }
if(ult[3] == "julho"){ mesN="07"; }
if(ult[3] == "agosto"){ mesN="08"; }
if(ult[3] == "setembro"){ mesN="09"; }
if(ult[3] == "outubro"){ mesN="10"; }
if(ult[3] == "novembro"){ mesN="11"; }
if(ult[3] == "dezembro"){ mesN="12"; }
//===========================================/
document.form.dtFim.value=''+diaN+"/"+mesN+"/"+ult[5];
}else{
alert(''+alerta);
}
}
</script>
HTML:
<form name="form" method="post" action="">
<table width="100%" border="0" cellpadding="5" cellspacing="0" class="preempenhoTable">
<tr>
<td align="left" valign="top" scope="col"><strong>Data INIICO:</strong>
<input name="dtInicio" type="text" id="dtInicio" size="12" maxlength="10" value="">
</td>
<td align="center" valign="top" scope="col"><strong>+ Dias:
<input name="dias" type="text" id="dias" size="3" maxlength="4" />
<input name="calc" type="button" id="calc" value="Calcular"
onclick="calculaDias(dtInicio.value,dias.value);" />
</strong></td>
<td align="right" valign="top" scope="col"><strong>Data FIM:</strong>
<input type="text" name="dtFim" id="dtFim" size="10" maxlength="10" value="" />
</td>
</tr>
</table>
</form>
