Je pratique en créant un calculateur d'âge qui calcule l'âge depuis des années sur la base de la date de naissance donnée.
Cependant, cela ne fonctionne pas comme je l'intention de fonctionner. Je veux montrer l'âge de l'année 18 à l'utilisateur lorsque leur âge est 19 et mois est inférieur à 6 et si le mois est supérieur à 6, je tiens à ajouter 1 à l'âge dans ce cas 19 + 1. P>
Quelqu'un peut-il créer le même programme avec le même concept de manière meilleure? Ajoutez une explication de sorte que cela soit facile pour moi de comprendre. P>
Je suis débutant Python, alors veuillez excuser mon mauvais code ainsi que mon mauvais anglais. Merci d'avance pour l'aide. P>
from datetime import date
Doby,Dobm,Dobd =input("enter your DOB : i.e year,month,days 1999,02,08 : ").split(",")
born = date(year = int(Doby) , month= int(Dobm) , day= int(Dobd))
today = date.today()
age = today.year - born.year
condition = today.month - born.month
if condition >= 6 :
age += 1
elif condition <= -6 :
age -= 1
print(age)
4 Réponses :
Supposons aujourd'hui est 01/01/2019 code> et l'entrée est 12/06/1989 code>. La sortie que nous avons besoin est 29Years code> et 7 mois code>. if condition >= 0:
Totmonth = condition
else:
Totmonth = 12+condition
age -= 1
print "age is" , age,"years and", Totmonth,"months"
Veuillez éditer votre message pour que ce soit du code formaté et respecte le formatage de Python.
J'ai soustrait l'int (Âge) de "Age" pour obtenir le port décimal de l'âge. puis vérifié pour voir si la partie décimale est supérieure à 0,5 et à l'âge 'En conséquence. P> if decAge > 0.5 :
age = int(age) + 1
else:
age = int(age)
Vous pouvez simplement diviser avec le nombre de jours en un an et faire arrondir (demi-moitié) pour obtenir le résultat souhaité. Le code ci-dessous devrait fonctionner. Sortie: P> 20
Voici votre fonction
years_of_age()
.Poordinal () code> convertit un objet DateTime en plusieurs jours depuis le 1er janvier 0000. LI>
-
La méthode d'instance .StrfTime () code> convertit une chaîne en un objet DateTime étant donné qu'il existe des directives de format DateTime ("% M-% D-% Y"). p> li>
-
Depuis que vous êtes un débutant, je m'assurais d'utiliser Python Standard Bibliothèque de packages, non pas parce que NUMPY est trop avancé, car les packages de bibliothèque standard sont efficaces, grands et négligés. p> li>
ul> p>
Considérant vos exigences, ce code fonctionne bien. Bien sûr, votre condition sur
mois code> semble un peu désactivé, car généralement on diraitÂge - = 1 code> siaujourd'hui.month code> code> (Depuis que je n'ai pas encore atteint l'anniversaire). S'il est passé au mois de naissance, l'âge est précis. Mais si vous êtes certain que vous avez besoin de la vérification de la différence de 6 mois, avec le +1 et -1 associé, alors votre code fonctionne bien.Si vous n'avez aucune erreur de votre code, mais que vous voulez un examen de la manière dont il peut être écrit mieux, vous pouvez essayer de demander à codereview.stackexchange.com a>