Ir para conteúdo

POWERED BY:

Arquivado

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

Luciano_Assis

Somar um número a uma data e mostra a data futura

Recommended Posts

voce precisa de separar esse valor da data usando a funcao substr() para separar o dia, o mes e o ano dessa data, depois basta acrescentar os valores que voce quiser.

 

exemplo: 28-07-2007

com o substr voce pega

 

dia = 28

mes = 07

ano = 2007

 

para somar 40 dias:

 

dia += 40;while (dia > 31) {  dia -= 31;   mes++;}while (mes > 12){  mes = 1;  ano++;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Precisa levar em consideração a quantidade de dias de cada mes e tambem se o ano é bissexto

Compartilhar este post


Link para o post
Compartilhar em outros sites

No escript abaixo estou somando 10 dias (86400000*10) a data 01/01/2007, esse script ja leva em consideração os anos bissextos.

<html><body><script type="text/javascript">var txtData = "01/01/2007";var d = new Date();d.setTime(Date.parse(txtData.split("/").reverse().join("/"))+(86400000*10))document.write(((d.getDate() < 10)?("0"+d.getDate().toString()):d.getDate().toString())+		"/"+(((d.getMonth()+1) < 10)?("0"+(d.getMonth()+1).toString()):(d.getMonth()+1).toString())+		"/"+d.getFullYear().toString());</script></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi xará tudo bem?

 

Hunter, obrigado pela lógica, identei e criei uma função... era assim que eu iria fazer, mas dava trabalho, agora que você criou, ficou mais "prático"!rs preguiça...rs

 

Abaixo estou colocando a função e, claro, mantendo os seus créditos.

 

// Autor: hunternh 
// Documentador: Leonardo Nobre
// Data: 31/01/2008 - 11:45h

// txtData - é a data inicial.
// DiasAdd - É quantos dias você quer adicionar a txtData.
function SomarData(txtData,DiasAdd) 
{
		// Tratamento das Variaveis.
		// var txtData = "01/01/2007"; //poder ser qualquer outra
		// var DiasAdd = 10 // Aqui vem quantos dias você quer adicionar a data
		var d = new Date();
			// Aqui eu "mudo" a configuração de datas.
			// Crio um obj Date e pego o campo txtData e 
			// "recorto" ela com o split("/") e depois dou um
			// reverse() para deixar ela em padrão americanos YYYY/MM/DD
			// e logo em seguida eu coloco as barras "/" com o join("/")
			// depois, em milisegundos, eu multiplico um dia (86400000 milisegundos)
			// pelo número de dias que quero somar a txtData.
			d.setTime(Date.parse(txtData.split("/").reverse().join("/"))+(86400000*(DiasAdd)))
		
		// Crio a var da DataFinal			
		var DataFinal;

		// Aqui comparo o dia no objeto d.getDate() e vejo se é menor que dia 10.			
		if(d.getDate() < 10)
		{
			// Se o dia for menor que 10 eu coloca o zero no inicio
			// e depois transformo em string com o toString()
			// para o zero ser reconhecido como uma string e não
			// como um número.
			DataFinal = "0"+d.getDate().toString();
		}
		else
		{	
			// Aqui a mesma coisa, porém se a data for maior do que 10
			// não tenho necessidade de colocar um zero na frente.
			DataFinal = d.getDate().toString();	
		}
		
		// Aqui, já com a soma do mês, vejo se é menor do que 10
		// se for coloco o zero ou não.
		if((d.getMonth()+1) < 10){
			DataFinal += "0"+(d.getMonth()+1).toString();
		}
		else
		{
			DataFinal += (d.getMonth()+1).toString())+"/"+d.getFullYear().toString();
		}
		
}

Se me permite, irei colocar função no laboratório de script JS do fórum! Tudo bem??

 

Abraços,

Léo

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.