DIFERENCA ENTRE DATAS

TRTNCG 12/01/2011 23:55:55
#362150
Pessoal Boa Noite!

Pessoa é o seguinte tem um módulo chamado aniversariantes, certo. Estou querendo tipo, tenho um combo com o nome dos 12 meses do ano. Ao clicar no combo ele filtra pelo mês e diz quanto dias faltam para o aniversário de cada contato. Até aí tudo blz. Quando clico no mês corrente tudo blz. tipo Janeiro dá tudo certinho. Mas quando clico no aniversariantes do mês de outubro, por exemplo acontece o seguinte:

Tenho a data de aniversário do contaro 12/10 po exemplo faltam 273 dias para o aniversário dele, agora como faço para comparar some as datas dia e mês.

Tipo Aniversário do Contato: 12/10
Data de Hoje: 12/01

Diferença entre as data sem levar em conta o ano.
FEDERHEN 13/01/2011 08:16:43
#362161
Resposta escolhida
Existem as funções DAY() e MONTH()

Exemplo:
MsgBox DAY([ô]25/01/2011[ô]) irá exibir o valor 25
MsgBox MONTH([ô]25/01/2011[ô]) irá exibir o valor 01

TRTNCG 13/01/2011 11:21:38
#362171
Pessoal, acho que não fui bem claro gostaria por exemplo que ao perceber que a data de aniversário e posterior ao mês corrente ele calcular a quantidade de dias que faltam.

Tipo data de hoje: 13/01
Data de Aniversário: 12/10

Então contando com hoje faltam 272 dias para o aniversário do meu cliente entenderam. Ou seja como fazer essa diferença sem levar em conta o ano somente dia e mês.
FEDERHEN 13/01/2011 11:36:50
#362173
Coloque o dia e mes de aniversário do contato na variável strDiaMes, no formato dd/mm -> exemplo strDiaMes = [Ô]25/01[Ô]
A rotina abaixo calculará os dias e exibirá na última linha.

Dim Datas(1 To 2) As String
Dim strDiaMes As String
Datas(1) = Format(Date, [Ô]dd/mm/yyyy[Ô])
Datas(2) = strDiaMes & Year(Date)
If Datas(1) > Datas(2) Then
Datas(2) = Mid(Datas(2), 1, 6) & Year(Date) + 1
End If
MsgBox [Ô]DIAS: [Ô] & DateDiff([Ô]d[Ô], Datas(1), Datas(2))
TRTNCG 13/01/2011 12:04:51
#362174
Pessoal a diferença é só entre meses mesmo não quero fazer diferença entre anos não. Quero saber tipo quantos dias faltam para que completa ano em outubro ou setembro ou dezembro é só diferença de dias entre dia e mês e não ano.
MITSUEDA 13/01/2011 12:20:19
#362176
Uma alternativa é retirar o dia e o mes e atribuir o ano atual para realizar o calculo
JONATHANSTECKER 13/01/2011 14:00:28
#362184
[txt-color=#0000f0]TRSOFTWARES[/txt-color]

Veja se essa função que criei te ajuda...

Private Sub Command1_Click()
DiasAniversario ([Ô]1989/05/05[Ô])
End Sub

Function DiasAniversario(DataAniversario As Date) As Integer

Dim Aniversario As Date
Dim Dias As Integer

Aniversario = CDate(Format(DateTime.Now, [Ô]yyyy[Ô]) & [Ô]/[Ô] & Month(DataAniversario) & [Ô]/[Ô] & Day(DataAniversario))

If DateDiff([Ô]d[Ô], Now(), Aniversario) < 0 Then
Aniversario = CDate(Format(DateTime.Now, [Ô]yyyy[Ô]) + 1 & [Ô]/[Ô] & Month(DataAniversario) & [Ô]/[Ô] & Day(DataAniversario))
End If

Dias = DateDiff([Ô]d[Ô], Now(), Aniversario)

MsgBox ([Ô]Faltam [Ô] & Dias & [Ô] dias para o aniversário![Ô])

End Function
FEDERHEN 13/01/2011 14:03:54
#362185
O código que postei acima calcula os dias que faltam até o próximo aniver.

Por exemplo, se o cara faz aniver hoje, vão faltar zero dias para o aniver dele.
Agora, se o cara fez aniver ontem, vão faltar 364 dias para o próximo aniver dele. (que vai ser lá no ano que vem)

A rotina acima também consitera o ano bisexto (fevereiro com 29 dias em determinados anos)
LUIZCOMINO 13/01/2011 15:02:16
#362194
Private Sub Command1_Click()
Dim Data, data2 As Date
Data = Format(Text1.Text, [Ô]mm/yyyy[Ô])
[ô]Acrescentando 60 meses a data em questão
data2 = DateAdd([Ô]m[Ô], 60, Data)
LblData.Caption = Format(data2, [Ô]mm/yyyy[Ô])
End Sub
Tópico encerrado , respostas não são mais permitidas