USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Data para dias 29, 30 e as vezes 31
Scaliburth
BELO HORIZONTE
MG - BRASIL
ENUNCIADA !
Postada em 11/10/2006 17:51 hs            
Pessoal, estou com uma pequena dúvida e estava precisando da ajuda de vocês. Tenho um sistema que agora estou fazendo uma mudança que é o seguinte.
É um sistema de estacionamento. Ao efetuar um pagamento onde seu vencimento é dia 05/09/06 por exemplo eu adiciono mais 1 mes para este cliente, ficando válido então até 05/10/06. Isso ai eu consigo fazer tranquilamente.
 
Minha dúvida é a seguinte. Até a data do dia 28, todos os meses tem. A dificuldade seria para datas por exemplo 29 (que não tem em todos os fev), assim como 30 e 31 que tb não tem em todos. Fazendo da forma que eu fiz utilizando o DateAdd("m", 1, Data), ele irá adicionar e pegará por exemplo o dia 31/03/06 e validará para 02/05/06 isso por considerar 1 mes, o que não está errado pela função.
 
Acontece que esta data eu tenho que jogá-la então para o último dia do mês de Abril que seria 30/04/06. Na verdade nestas datas teria que jogar não 1 mês e sim para o último dia do próximo mês. E é essa a minha dúvida, como poderia fazer isso?
 
Quem puder me ajudar! MUITO OBRIGADO!
   
Sidnei X-Crow
Pontos: 2843
VITÓRIA
ES - BRASIL
Postada em 11/10/2006 21:32 hs         
Probleminha interessante
aproveita a logica desse post acho q será util:

http://www.vbweb.com.br/forum_resp.asp?Codigo=208532

no seu caso nDias seria o ultimo dia do mês.

Abraços, Sidnei
     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 12/10/2006 14:52 hs            
A função do colega passada no link funciona... :)
Bom, o q eu vou passar faz a mesma coisa mas usa recursividade:
 
Private Function F_Retorna_Dias(ByVal Mes As Byte, Optional ByVal dias As Integer = 0) As Byte
dias = IIf(dias = 0, 31, dias)
If IsDate(dias & "/" & Mes & "/" & Year(Date)) Then
    F_Retorna_Dias = dias
Else
    F_Retorna_Dias = F_Retorna_Dias(Mes, dias - 1)
End If
End Function
 
para chamar:
 
MsgBox F_Retorna_Dias(month(data))
 
a lógica é retirar 1 dia até a data ser válida... (do ano corrente)
 
at+ :)
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página