2010-01-30 6 views
1

peut me dire le code pour valider le champ de date sous forme d'inscription (qui SHD également valider l'année bissextile et pas de jours dans chaque moisDate de validation

Répondre

2

Cela dépend de l'entrée, mais supposons que vous avez une entrée de chaîne pour la date entière, alors vous pouvez essayer quelque chose comme:

try 
{ 
    DateTime parsedDate = DateTime.Parse(incomingDateString); 
} 
catch 
{ 
    throw new Exception("Incoming Date string could not be parsed as a DateTime"); 
} 

Alternativement, si vous avez trois entiers sous forme de chaînes venant de la forme alors vous remplacer le DateTime.Parse avec

 DateTime parsedDate = new DateTime(Int32.Parse(yearString), Int32.Parse(MonthString), Int32.Parse(DayString)); 

et permettre au constructeur DateTime prendre soin des détails de l'analyse de jours du mois et des années bissextiles. Vous pourriez être plus sophistiqué et utiliser Int32.TryParse et fournir des messages d'erreur plus spécifiques et vérifier les chaînes NULL si c'est ce dont vous avez besoin.

+0

merci beaucoup un ami merci beaucoup –

1

Vous pouvez vous assurer d'obtenir une date valide en ajoutant un contrôle de calendrier ou un contrôle de sélecteur de date.Cela évitera d'avoir à ajouter une validation supplémentaire juste pour valider ce champ

Si vous ne souhaitez pas utiliser un contrôle de calendrier ou un sélecteur de date, vous pouvez utiliser DateTime.Parse et placer à l'intérieur d'un bloc Try, Catch

dateString = YourDateField.Text; 
     try { 
     dateValue = DateTime.Parse(dateString); 
     } 
     catch (FormatException) { 
     Console.WriteLine("Unable to convert, this is not a valid date '{0}'.", dateString); 
     } 

Espérons que h elps.

+0

merci beaucoup un ami merci beaucoup –