Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucas_Santos

Função de Validar Data

Recommended Posts

Alguem poderia me ajudar?

 

Criei uma função que valida datas, porém a única data que não está sendo validada corretamente é "20/03/2011aaa"

ou seja, colocar letras no final de uma data, está sendo considerado valido pela função, alguem pode ajudar? Deveria retornar falso.

 

Module Module1

   Sub Main() 
       Dim Resultado5 As Boolean
       Dim Inserir5 As String = "20/03/2011aaa"

       Resultado5 = validaDataInicial(Inserir5)

       Console.WriteLine(Resultado5)

       Console.ReadKey()

   End Sub

 

  Public Function validaDataInicial(ByVal pDataHoraCriacaoInicial As String) As Boolean
       Dim toParametros As Integer = 1
       Dim expressao As String = pDataHoraCriacaoInicial.ToString()
       expressao = expressao.Trim()


       If (expressao.Length < 10) Then
           Return False
       End If

       For i As Integer = 0 To expressao.Length - 1

           'Posicao de 30 a 39 na tabela ASCII são numeros de 0 a 9' 
           For posicao As Integer = 30 To 39
               Dim valor As Char = expressao(i)

               'Se o valor na posicao do indice da expressao NÃO for um numero '
               'e se caso o indice estiver na posicao 2 e nao tiver uma barra '
               'ou caso o indice estiver na posicao 5 e nao tiver uma barra'
               'Retornar Falso'
               If ((Not (expressao(i).Equals(posicao) And expressao(2).Equals(Chr(47)) Or expressao(5).Equals(Chr(47))))) Then
                   Return False
               End If
           Next posicao
       Next i
       Return True
   End Function
End Module

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguem poderia me ajudar?

 

Criei uma função que valida datas, porém a única data que não está sendo validada corretamente é "20/03/2011aaa"

ou seja, colocar letras no final de uma data, está sendo considerado valido pela função, alguem pode ajudar? Deveria retornar falso.

 

Module Module1

   Sub Main() 
       Dim Resultado5 As Boolean
       Dim Inserir5 As String = "20/03/2011aaa"

       Resultado5 = validaDataInicial(Inserir5)

       Console.WriteLine(Resultado5)

       Console.ReadKey()

   End Sub

 

  Public Function validaDataInicial(ByVal pDataHoraCriacaoInicial As String) As Boolean
       Dim toParametros As Integer = 1
       Dim expressao As String = pDataHoraCriacaoInicial.ToString()
       expressao = expressao.Trim()


       If (expressao.Length < 10) Then
           Return False
       End If

       For i As Integer = 0 To expressao.Length - 1

           'Posicao de 30 a 39 na tabela ASCII são numeros de 0 a 9' 
           For posicao As Integer = 30 To 39
               Dim valor As Char = expressao(i)

               'Se o valor na posicao do indice da expressao NÃO for um numero '
               'e se caso o indice estiver na posicao 2 e nao tiver uma barra '
               'ou caso o indice estiver na posicao 5 e nao tiver uma barra'
               'Retornar Falso'
               If ((Not (expressao(i).Equals(posicao) And expressao(2).Equals(Chr(47)) Or expressao(5).Equals(Chr(47))))) Then
                   Return False
               End If
           Next posicao
       Next i
       Return True
   End Function
End Module

 

 

E se você trocar esse if:

If (expressao.Length < 10) Then
           Return False
       End If

 

Para:

If (expressao.Length <> 10) Then
           Return False
       End If

 

Não resolve o problema ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.