Ir para conteúdo

POWERED BY:

Arquivado

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

Marcelo VMB

Comparar data

Recommended Posts

Olá!

 

Estou tentando comparar as datas de um cadastro para que na hora do cadastro possa fazer um teste com a data atual e com a data que o usuário escoheu para um agendamento. A data de agendamento não pode aceitar retroativa.

 

Sendo assim, fiz:

 

dia = day(now)

mes = month(now)

ano = year(now)

hora = hour(now)

minutos = minute(now)

segundos =second(now)

 

Fun_Data = CStr(dia) + "/" + CStr(mes) + "/" + CStr(ano)

 

if vardata_agenda < Fun_Data then

 

não aceita

 

else

 

aceita

 

Mas o que acontece é que ele compara as datas do mês atual, mas quando colocam data do próximo mês ele acusa falando que não pode.

 

Ou seja: se coloco 27/4/2009 o sistema não permite, pois não aceita a data atual e datas mais antigas que ela mesma, ok, certo, quando também coloco 29/4/2009, por exemplo, ele aceita, pois não é a data atual e não é antiga. Contudo, se faço 25/5/2009, por exemplo, ele não permite também, mas o certo é permitir já que a data do dia parece menor, mas o mês é maior e assim deveria permitir

 

Como fazer então que a data seja aceita não só pelos os dias do mês, mas também os dias do mês que virão ainda?

 

Desde já, agradeço

 

Marcelo

Compartilhar este post


Link para o post
Compartilhar em outros sites

VBScript possui função nativa que você pode utilizar para comparar data.

 

Ex. DateDiff("d",Date,"31/1/2009") 'vai retornar o número de dias entre as datas.

 

Sobre comparação, como retorna um valor numérico, você pode fazer um IF com o resultado para verificar, se maior que 0 é pq ja passou da data, se menor que 0 é a mesma data, se menor, não chegou ainda na data.

 

Você pode informar outros parâmetros no lugar de "d" para ser calculado. Faça uma pesquisa aqui no Fórum que tem vários exemplos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso sei, mas você não entendeu... eu quero que ao cadastrar a data digitada pelo usuário comparando com a data de hoje, a data de agendamento não pode aceitar retroativa e nem a data atual, tem que ser a data que virá ainda, as datas futuras e como fiz ele pega as datas futuras do mês atual, mas se digitar a data futura do novo mês, do mês que vem, ele não aceita, acusa que é data antiga, retroativa, mas não é, já que é a data do mês que vem, por exemplo. Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi perfeitamente. Como expliquei, basta utilizar a função DateDiff.

<%
vardata_agenda = "25/06/2009"
If (DateDiff("d",Date,vardata_agenda) <= 0) then
	   Response.Write "não aceita"
Else
	   Response.Write "aceita"
End If
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso citado, 0 dias. Logo se tem 0 dias entre um intervalo de data quer dizer que é a data atual. Se for menor que 0, quer dizer que se passou x dias da data atual.

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.