Je veux vérifier si une date a un format correct. Il y a de nombreuses possibilités de dates exactes comme:DateTime.TryParse tous les types de dates possibles
- 02.08.2010
- 2.8.2010
- 02.8.2010 02,08
- 02.August
- ...
I peut tester chaque sur avec le code comme ceci:
if (DateTime.TryParse(DateTime.ParseExact(date, "dd.M.",
new CultureInfo("sl-SI")).ToString(), out dt))
Mais alors je peux avoir 40 instructions if. Est-il possible de vérifier toutes les dates avec une instruction if ou une boucle?
Mise à jour:
Sur la base des réponses à ce jour, je teste ce code, mais je un autre problème. Que faire si je viens de 9,2 9.2.2010 pas alors ce code ne fonctionnera pas:
CultureInfo ci = CultureInfo.GetCultureInfo("sl-SI");
string[] fmts = ci.DateTimeFormat.GetAllDateTimePatterns();
if (DateTime.TryParseExact(date, fmts, ci, DateTimeStyles.AssumeLocal, out dt))
{
DateTime = Convert.ToDateTime(date);
Check = true;
}
Dois-je ajouter manuellement cette fois ou que puis-je faire?
Comment accepter tous les formats de date possibles comme entrée valide? –
s'il vous plaît ajouter des mises à jour à votre question ou utiliser la fonction de commentaires. Aussi s'il vous plaît ne pas utiliser les réponses pour dire merci, utiliser un commentaire ou mieux, upvote et marquer comme accepté: http://blog.stackoverflow.com/2011/01/how-to-say-thanks-in-an-answer/ – Kev
Peut-être que vous voulez voir ceci aussi [robust-datetime-parser-library-for-net] (http://stackoverflow.com/questions/7297622/robust-datetime-parser-library-for-net) – nawfal