Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

berkowitz

Cálculo de data

Recommended Posts

Pessoal,Olá.Preciso fazer um cálculo com datas que me traga qual será o dia daqui a 90 dias! Como faço?Por exemplo: Hoje é dia 07/10/2005. Daqui a 90 dias será dia nn/nn/nnnn.Alguém pode me ajudar?VALEWWW!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caraca cara!! Muito legal!!! Valew mesmo!!! :D Aew Marcinha! Valew tbm! ehehehee...FLOWWW!!!Viu... eu queria entender a lógica deste programinha... você pode me ajudar cara?FLOWW!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo tudo! haahuhaa...

qual a lógica desse programa? Como ele funciona? Como ele consegue fazer esses cálculos, entendeu????

É que é o seguinte... eu fiz um script para meu chefe aqui... ele quer saber que dia será daqui a 90 dias (por exemplo). Só que ele pode querer saber qual dia será 90 dias depois do dia 10/10/2005 por exemplo, então pra isso preciso permitir que ele insira a data do início da contagem também, entendeu?? Mas não está funcionando... ele sempre dá o valor do dia igual ao que eu digitei no intervalo de tempo!! C pode me ajudar?

 

Meu código tá assim:

 

<html>	<head>		<title>• Cálculo de data para CAU</title>		<style type="text/css">		<!--			html {				margin: 0;				padding: 0;				cursor: default;			}						body, table {				font-family: Verdana;				font-size: 10px;				color: #333333;				background-color: #F1F1F1;			}						.titulo {				background-color: #FFFFFF;				border-bottom: 1px dotted #CCCCCC;				font-size: 15px;				font-weight: bolder;				text-align: center;				padding: 5px;			}						.corpo {				padding-left: 20px;				padding-right: 20px;				padding-bottom: 20px;			}						INPUT#intervalo, INPUT#dataEntry {				border-left: 1px solid #F1F1F1;				border-top: 1px solid #F1F1F1;				border-right: 1px solid #CCCCCC;				border-bottom: 1px solid #CCCCCC;				width: 30px;				height: 15px;				font-family: Verdana;				font-size: 9px;				font-color: #333333;				text-align: center;			}						INPUT#dataEntry {				width: 100px;			}		-->		</style>		<script language="JavaScript">		<!--			var dt = new Date();						function numdias(mes,ano) {				if((mes<8 && mes%2==1) || (mes>7 && mes%2==0)) return 31;				if(mes!=2) return 30;				if(ano%4==0) return 29;				return 28;			}						function somadias(data,dias) {				data=data.split('/');				diafuturo=parseInt(data[0])+Number(dias);				mes=parseInt(data[1]);				ano=parseInt(data[2]);				while(diafuturo>numdias(mes,ano)) {					diafuturo-=numdias(mes,ano);					mes++;					if(mes>12) {						mes=1;						ano++;					}				}								if(diafuturo<10) diafuturo='0'+diafuturo;				if(mes<10) mes='0'+mes;								if(event.keyCode == 13) alert(diafuturo+"/"+mes+"/"+ano);			}						function dataAtual() {				var dia = dt.getDate();				var mes = (dt.getMonth() + 1);				var ano = dt.getFullYear();				if(mes < 10) {					mesFinal = "0" + mes;				}				else {					mesFinal = mes;				}				if(dia < 10) {					diaFinal = "0" + dia;				}				else {					diaFinal = dia;				}								data = diaFinal + "/" + mesFinal + "/" + ano;				return (data);			}						function funcLoad() {				document.frmData.intervalo.focus();				document.frmData.dataEntry.value = dataAtual();				window.opener.close();			}						onload = funcLoad;		//-->		</script>	</head>	<body>		<form id="frmData" name="frmData" method="post" action="javascript:;">			<p class="titulo">• Cálculo da Data •</p>			<p class="corpo">				Digite a data de entrada:				<input type="text" id="dataEntry" name="dataEntry" />.<br />			  Daqui o intervalo de tempo: 			  <input type="text" id="intervalo" name="intervalo" onKeyPress="somadias('' + document.frmData.dataEntry.value,this.value);" />.			</p>		</form></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo bem cara... é só para uso interno aqui, e o povo só usa microsoft! heheehe... num tem problema!VAlew mesmo hein! :D FLOWW!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabo de ver um bug nessa função! Veja:

 

alert(somadias("01/09/2005",2));
Teria que retornar 03/09/2005, mas retorna 03/00/2005! Outras datas também acontecem isso...

 

:blink:

Creio q para resolver isso basta substituir as 3 ocorrências da função "parseInt" pela função "Number", cfe abaixo:

diafuturo=Number(data[0])+dias;mes=Number(data[1]);ano=Number(data[2]);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.