Ir para conteúdo

POWERED BY:

Arquivado

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

webfuture

Problemas com dateadd

Recommended Posts

Olá pessoal, tenho uma função em um site que desenvolvi que adiciono alguns dias a alguma data, mas o que começou a acontecer é, ao invés de ele adicionar dias, ele esta trocando e adicionando meses...

 

Vejam o código:

 

Function DataAdicional(DataAtual,Qtd_dias)
NovaData = DateAdd("d",DataAtual,Qtd_dias)
DataAdicional = NovaData
End Function

valor_data = formatdatetime(DataAdicional(cdate(data),"1"), vbshortdate)

Neste caso eu uso a variavel valor_data em um insert ou update usando banco de dados access e servidor windows 2003 server.

 

Alguém sabe o que pode estar acontecendo ?

 

Xavier

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estive verificando sua função e me veio algumas perguntas

De onde você esta pegando a data original?

Porque você esta formantando a data?

 

Segue uma sugestão

 

DataCadastro = Date()'PEGO A DATA ATUAL NO FORMATO DD/MM/AAAA
DataVencimento = DateAdd("m", 1, DataCadastro)'para um mês
DataVencimento = DateAdd("yyyy", 1, DataCadastro)'para um ano
DataVencimento = DateAdd("d", 1, DataCadastro)'para um dia

As adições possíveis são determinadas pelas seguintes hipóteses :

yyyy -> Ano

q -> Quarto

m -> Mês

y -> Dia do Ano

d -> Dia

w -> Dia da semana

ww -> Semana do ano

h -> Hora

n -> Minuto

s -> Segundo

 

Caso precise de um função para ajustar a data no formato 01/01/2009, porque algumas vezes o sistema traz a data com o formato 1/1/2009 para caso de dia e mes com um dígito ou começando com zero

 

Function Data_nova(Wdata )
    Data_nova = mid((100+day(wdata)),2,2) & "/" & mid((100+month(wdata)),2,2) & "/" & year(wdata)
End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Kania, vamos as respostas:

 

A data original pego assim:

 

data = day(now) & "/" & month(now) & "/" & year(now)

 

Preciso disto pelo seguinte, no sistema o usuário poderá agendar digamos consultas, mas não podem ser agendadas para o mesmo dia se não estiver dentro de um critério de horários, dias, e etc, então de acordo com estes critérios preciso adicionar 1 dia, 2, 3 ou 4 dias etc...

 

Xavier

Compartilhar este post


Link para o post
Compartilhar em outros sites

testa assim

 

DataAtual = Date()
Dia = Day(DataAtual)
Mes = Month(DataAtual)
Ano = Year(DataAtual)

'Monta a data

DataFormatada = Dia&"/"&mes&"/"&Ano
DataComAdicao = DateAdd("d", 1, DataFormatada)'Adição de um dia na data

Caso você verifique que a data esta chegando com uma formação assim 1/1/2009 por exemplo, utilize a função que passei acima para formatar para 01/01/2009.

 

Tenta ai e qualquer cois posta o código para gente testar

 

Você pode tentar assim também

 

'Pega a data atual
DataAtual = Date()

'Adiciona a data atual a quantidade de dias
DataAtual = DateAdd("d", 1, DataAtual)

'formata ela para corrigir os zeros
Function Data_nova(Wdata )
    Data_nova = mid((100+day(wdata)),2,2) & "/" & mid((100+month(wdata)),2,2) & "/" & year(wdata)
End Function

DataAtual = Data_nova(DataAtual)
Response.Write DataAtual

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faria a função assim:

Function DataAdicional(DataAtual,Qtd_dias)
DataAdicional = DateAdd("d",Cdate(DataAtual),Cint(Qtd_dias))
End Function

Possivelmente o Lcid afete o valor da data ai você deve definir par ao padrão utilizado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, fiquei fora uns dias mas descobri o que aconteceu, no painel de controle nas configurações de data estava configurado como estados unidos em dois locais, mudei pra brasil, deu boot no servidor e agora funcionou, de qualquer forma muito obrigado a todos.

 

Xavier

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.