DIFERENCA ENTRE DATAS
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.
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.
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
Exemplo:
MsgBox DAY([ô]25/01/2011[ô]) irá exibir o valor 25
MsgBox MONTH([ô]25/01/2011[ô]) irá exibir o valor 01
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.
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.
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))
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))
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.
Uma alternativa é retirar o dia e o mes e atribuir o ano atual para realizar o calculo
[txt-color=#0000f0]TRSOFTWARES[/txt-color]
Veja se essa função que criei te ajuda...
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
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)
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)
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
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