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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Soma de Anos, Meses e Dias
WALMIR
SERRANA
SP - BRASIL
Postada em 11/01/2008 02:07 hs            
Ola a todos. Sou novo por aqui. Gostaria de uma ajuda de todos.
Estou desenvolvendo um programa para calculos de pena, que funciona assim:
Ano(S)  Meses       Dias
_text1   _Text2_  _Text_ 
 
O programa soma os tres campos text's respectivos, mas ha uma limitação em que dias por exemplo nao pode exceder a 30 ou 31 se e meses que nao pode ser maior que 12. Até ai blz. Mas como fazer para mostrar a soma destes tres campos ja com Anos meses e dias atualizado e com estas condições em relação aos dias e meses. Será que alguem pode dar uma sugestão. Obrigado.
     
Tiranossauro
não registrado
Postada em 11/01/2008 08:33 hs   
use a função datediff
 
Para ter uma resposta mais exata poste uma situação concreta com mais informações que alguém dá uma dica da fórmula para vc.
Abraços
 
     
Treze
não registrado
Postada em 11/01/2008 09:11 hs   
Colega, para você existe uma solução simples, uma função de aniversário
 
cole este código em um Módulo:
 
Public Function CalcularIdade(DTNasc As Date) As String
   Dim Anos As Single, Meses As String, Dias As Single
   Dim UTDTNasc As Date
   If Month(DTNasc) <= Month(Date) Then
      If Month(DTNasc) <> Month(Date) Then
         UTDTNasc = Day(DTNasc) & "/" & Month(DTNasc) & "/" & Year(Format(Date, "dd/mm/yyyy"))
      Else
         If Day(DTNasc) <= Day(Date) Then
            UTDTNasc = Day(DTNasc) & "/" & Month(DTNasc) & "/" & Year(Format(Date, "dd/mm/yyyy"))
         Else
            GoTo NPassou
         End If
      End If
   Else
NPassou:
      UTDTNasc = Day(DTNasc) & "/" & Month(DTNasc) & "/" & Year(Format(Date, "dd/mm/yyyy")) - 1
   End If
   Anos = DateDiff("yyyy", DTNasc, UTDTNasc)
   Meses = DateDiff("m", UTDTNasc, Date)
   If Day(Date) < Day(UTDTNasc) Then
      Meses = Meses - 1
      Dias = DateDiff("d", DateAdd("m", -1, Day(DTNasc) & "/" & Month(Date) & "/" & Year(Format(Date, "dd/mm/yyyy"))), Date)
   ElseIf Day(Date) = Day(UTDTNasc) Then
      Dias = 0
   ElseIf Day(Date) > Day(UTDTNasc) Then
      Dias = DateDiff("d", Day(DTNasc) & "/" & Month(Date) & "/" & Year(Format(Date, "dd/mm/yyyy")), Date)
   End If
   CalcularIdade = Anos & " Ano(s) " & Meses & " Mês(es) " & Dias & " Dia(s)"
End Function
 
para testar faça isto:
 
text1.text=CalcularIdade(01/08/1958)
 
e pronto eis a sua resposta
 
49 Ano(s) 5 Mês(es) 10 Dia(s)
 
e é isso adapte em programa e pronto
 
lembrando que a data é a data inicial da pena
 
valeu até
 
     
Ama
Pontos: 2843
UBERLÂNDIA
MG - BRASIL
ENUNCIADA !
Postada em 12/01/2008 00:37 hs         
eu converto para segundo e somo a uma data de referencia com DateAdd
   
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