Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
>
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 ?