Usuário com melhor resposta
A conversão da cadeia de caracteres '3' no tipo 'Date' não é válida

Pergunta
-
Ola galera tudo bem, to com projeto de aniversariantes do mes, ja funcionando. Porem quando eu quero q se o niver do dia for hoje ele soma 1 no label lblDiaMes da o erro "A conversão da cadeia de caracteres '3' no tipo 'Date' não é válida" segue meu codigo
carregatodosdadosinitial() For Each linha As DataGridViewRow In dvgAniversariantes.Rows Dim dateformat4 As String dateformat4 = Date.Today.Day() If linha.Cells("data_nascimento").Value = dateformat4 Then 'aqui q esta dando o erro lblNiverHoje.Text += 1 Else MsgBox("falso") End If Next lblNiverHoje.Text = diasoma.ToString
Respostas
-
Boa noite,
Experimente fazer uns testes dessa forma para ver se funciona:
If linha.Cells("data_nascimento").Value.Day() = Date.Today.Day() Then
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Marcos_Programador sábado, 4 de maio de 2019 17:53
-
Experimente fazer uns testes com o código abaixo:
Dim difAnos as Integer = Date.Today.Year() - linha.Cells("data_nascimento").Value.Year() Dim dataNiver as Date = linha.Cells("data_nascimento").Value.AddYears(difAnos) If dataNiver = Date.Today Then
A idéia seria somar a diferença de anos entre o nascimento e a data atual para obter o dia do aniversário no ano atual e então comparar com a data de hoje. Se funcionar assim deve evitar problemas com nascidos em 29/fev quando não for ano bissexto.
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Marcos_Programador sábado, 4 de maio de 2019 17:53
Todas as Respostas
-
-
-
Boa noite,
Experimente fazer uns testes dessa forma para ver se funciona:
If linha.Cells("data_nascimento").Value.Day() = Date.Today.Day() Then
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Marcos_Programador sábado, 4 de maio de 2019 17:53
-
-
Ocorreu algum erro? Foi na mesma linha? Qual mensagem de erro foi exibida?
Assinatura: http://www.imoveisemexposicao.com.br
-
nao ocorreu nenhum erro, porem ele pega as informação so do dia e queria do dia e do mes como se fosse aniversario, ficaria tipo assim ?
porem ele esta pegando so do dia mesmo com o codigo abaixo
If linha.Cells("data_nascimento").Value.Day() = Date.Today.Day() And Date.Today.Month() Then?
-
Experimente fazer uns testes com o código abaixo:
Dim difAnos as Integer = Date.Today.Year() - linha.Cells("data_nascimento").Value.Year() Dim dataNiver as Date = linha.Cells("data_nascimento").Value.AddYears(difAnos) If dataNiver = Date.Today Then
A idéia seria somar a diferença de anos entre o nascimento e a data atual para obter o dia do aniversário no ano atual e então comparar com a data de hoje. Se funcionar assim deve evitar problemas com nascidos em 29/fev quando não for ano bissexto.
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Marcos_Programador sábado, 4 de maio de 2019 17:53
-
Obrigado a voces com suas dicas me ajudaram, vou deixar o codigo aqui para quem precisar no futuro
Try For Each linha As DataGridViewRow In dvgAniversariantes.Rows If linha.Cells("data_nascimento").Value.Day() = Date.Today.Day() And linha.Cells("data_nascimento").Value.month() = Date.Today.Month Then diasoma += 1 lblNiverHoje.Text += 1 End If If linha.Cells("data_nascimento").Value.Month() = Date.Today.Month() Then messoma += 1 lblNiverMes.Text += 1 End If Next lblNiverHoje.Text = diasoma.ToString() lblNiverMes.Text = messoma.ToString lblNiverTotal.Text = anosoma.ToString Catch ex As Exception MsgBox("Erro ao carregar Informação no nossos dados", MsgBoxStyle.Critical, "Sentimos Muito!") End Try lblNiverTotal.Text = dvgAniversariantes.Rows.Count()