VALIDAR DATA

ALEXPASSOS 24/09/2010 14:52:52
#353777
Olá

Estou com um problema de validação de data

eu estou colocando assim:

If IsDate(maskData.Text) Then
MsgBox([Ô]Verdadeira[Ô])
Else
MsgBox([Ô]Falsa[Ô])
End If

se eu digito assim:

24/09/0210

esta dizendo que a data é verdadeira.

Como validar a data?
ADHEL 24/09/2010 16:27:40
#353785
Alex tudo bem?

Não sei se esse jeito é o mais elegante .Mas funciona
Coloquei para fazer a comparação com a data de hoje e a data digitada no maskedit
se for igual ela retorna (Verdadeira)

Acredito que se é só alterar para sua conveniência.

JONATHANSTECKER 24/09/2010 17:46:29
#353789
Bom Alex,

Esta condição está retornando [Ô]Verdadeira[Ô], porque [Ô]24/09/0210[Ô] é uma data válida.
Caso você queira restringir o ano de uma data, faça uma verificação do ano.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If VerificaData(Me.maskData.Text) Then
MsgBox([Ô]Verdadeira[Ô])
Else
MsgBox([Ô]Falsa[Ô])
End If
End Sub

[ô][ô][ô] <summary>
[ô][ô][ô] Verifica se uma String é uma data válida e maior que o ano de 1999
[ô][ô][ô] </summary>
[ô][ô][ô] <param name=[Ô]Data[Ô]>Data</param>
[ô][ô][ô] <returns><c>True</c> Se for uma data válida</returns>
[ô][ô][ô] <remarks></remarks>
Public Function VerificaData(ByVal Data As String) As Boolean
If IsDate(Data) = False Then Return False
If CDate(Data).Year < [Ô]2000[Ô] Then Return False
Return True
End Function
ARNALDOCRUZ 24/09/2010 23:29:09
#353811
Dim DTX As String
DTX = Trim(Replace(Me.txtdata.Text, [Ô]/[Ô], [Ô][Ô]))
If DTX <> [Ô][Ô] Then
Dim dt As DateTime
Me.txtdata.Text = FormatDateTime(Me.txtdata.Text, DateFormat.ShortDate)
DateTime.TryParseExact(Me.txtdata.Text, [Ô]dd/MM/yyyy[Ô], Nothing, Nothing, dt)
If dt = DateTime.MinValue Then
MessageBox.Show([Ô]Data incorreta[Ô], [Ô]Aviso do sistema[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.txtdata.SelectAll()
e.Cancel = True
End If
End If
PEGUDO 05/10/2010 12:21:20
#354438
Cara os exemplos dos colegas acima são bons, mas um controle DateTimePicker não seria útil?
Evitaria, com certeza, a digitação de datas erradas.

Abraços
Tópico encerrado , respostas não são mais permitidas