En python, la façon de vérifier si une date est-elle valable?
Je suis la construction d'une sorte de calendrier web app
J'ai mis en place le formulaire ci-dessous HTML
<form action='/event' method='post'>
Year ("yyyy"): <input type='text' name='year' />
Month ("mm"): <input type='text' name='month' />
Day ("dd"): <input type='text' name='day' />
Hour ("hh"): <input type='text' name='hour' />
Description: <input type='text' name='info' />
<input type='submit' name='submit' value='Submit'/>
</form>
L'entrée de l'utilisateur est alors soumis dans l'un cherrypy serveur
Je me demande, est-il un moyen de vérifier si la date saisie par l'utilisateur est une date valide?
Évidemment, je pourrais écrire tout un lot de si les déclarations, mais il y a tout construit en fonction de ce que peut le vérifier?
Grâce
OriginalL'auteur Synia | 2012-04-03
Vous devez vous connecter pour publier un commentaire.
Vous pourriez essayer de faire
qui permettra d'éliminer des choses comme les mois >le 12 , les heures > 23, inexistante leapdays (mois=2 a max de 28 sur non les années bissextiles, 29 autrement, à mois d'avoir un maximum de 30 ou 31 jours)(throws exception ValueError sur erreur)
Aussi, vous pourriez essayer de le comparer avec la santé mentale supérieure/inférieure de limites.
ex.:
Pertinentes supérieure et inférieure de la santé mentale limites dépendent de vos besoins.
edit: n'oubliez pas que ce ne gère pas certains datetimes choses qui peuvent ne pas être valides pour votre application(min anniversaire, vacances, en dehors des heures de fonctionnement, ect.)
OriginalL'auteur Roman A. Taycher
Vous pouvez essayer d'utiliser datetime et de gérer les exceptions de décider valide/invalide date :
Exemple : http://codepad.org/XRSYeIJJ
OriginalL'auteur DhruvPathak
Utilisation
datetime
par exemple.
Ou vous pourriez
try...except
et de capture de l'erreur. Ensuite, vous pouvez faire ce que vous voulez, passer l'erreur en silence si vous avez choisi de.voir docs.python.org/tutorial/errors.html#handling-exceptions
OriginalL'auteur jamylak
Voici une solution en utilisant le temps.
date(year, month, day)
?OriginalL'auteur user2863035
Vous pouvez essayer d'utiliser datetime et de gérer les exceptions de décider valide/invalide date:
donne
C'est l'amélioration de une réponse par DhruvPathak et fait plus de sens comme une modification, mais il a été rejeté comme "Cette modification visait à répondre à l'auteur du post et n'a pas de sens comme une modification. Il doit avoir été écrit comme un commentaire ou une réponse."
OriginalL'auteur Mateusz Konieczny
Même si cela peut répondre les auteurs remettent en question, il manque quelques explications des mots et des liens vers de la documentation. Raw des extraits de code ne sont pas très utile sans quelques phrases autour d'elle. Vous pouvez également trouver comment écrire une bonne réponse très utile. Merci de modifier votre réponse.
mmm j'écris des commentaires pour clarifier les choses, donc j'espère que ça aidera...
OriginalL'auteur Batjigdrel bataa
La question suppose que la solution sans bibliothèques implique "un tas de if", mais il ne le fait pas:
OriginalL'auteur anon
Donc, voici mon hacky solution pour corriger les non valide aux dates prévues. Ceci suppose que l'utilisateur soumet à partir d'un générique de formulaire html qui fournit de 1 à 31 jours comme des options. La question principale étant les utilisateurs fournissant un jour qui n'existe pas pour le mois (ex 31 septembre)
OriginalL'auteur daryl