none
A conversão da cadeia de caracteres '3' no tipo 'Date' não é válida RRS feed

  • 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
           

    sexta-feira, 3 de maio de 2019 17:12

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

    sexta-feira, 3 de maio de 2019 21:16
  • 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

    sábado, 4 de maio de 2019 17:49

Todas as Respostas

  • linha.Cells("data_nascimento").Value deve estar retornando um date e a propriedade Day é um int...

    sexta-feira, 3 de maio de 2019 17:16
  • tem q fazer uma variavel para o day do tipo int?
    sexta-feira, 3 de maio de 2019 17:19
  • 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

    sexta-feira, 3 de maio de 2019 21:16
  • boa tarde tbm nao deu certo. obrigado ^^
    sábado, 4 de maio de 2019 16:14
  • Ocorreu algum erro? Foi na mesma linha? Qual mensagem de erro foi exibida?

    Assinatura: http://www.imoveisemexposicao.com.br

    sábado, 4 de maio de 2019 17:28
  • 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? 
    sábado, 4 de maio de 2019 17:33
  • 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

    sábado, 4 de maio de 2019 17:49
  • 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()

    sábado, 4 de maio de 2019 17:54