Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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
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
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
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
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