Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from datetime import datetime
- nome = input("Inserisci il tuo nome: ") # ici input nous permet de recuperer le nom de l'utilisateur et le garder dans la variable nom
- data_nascita_str = input("Inserisci la tua data di nascita (formato: YYYY-MM-DD): ") # ici input nous permet de recuperer la date de naissance de l'utilisateur et le garder dans la variable data_nascita_str
- #le code qui suit nous permet de verifier si la date de naissance est valide c'est a dire si elle est au format YYYY-MM-DD(annee-mois-jour)
- #si l'utilisateur ne respecte pas ce format, le code entre dans except et affiche un message d'erreur
- #par contre si l'utilisateur respecte le format, le code entre dans try et la date de naissance est convertie en un objet datetime
- try:
- data_nascita = datetime.strptime(data_nascita_str, "%Y-%m-%d")
- #datetime.strptime() est une méthode de la classe datetime qui permet de convertir une chaîne de caractères en un objet datetime c'est
- #c'est a dire sous le format YYYY-MM-DD(annee-mois-jour)
- #la méthode strptime() prend deux arguments: la chaîne de caractères à convertir (qui est notre variable data_nascita_str)et le format de la chaîne de caractères
- except ValueError:
- # ValueError est une exception qui est levée lorsque la conversion échoue
- #cela signifie que la chaîne de caractères ne correspond pas au format spécifié (YYYY-MM-DD)
- #dans ce cas, on affiche un message d'erreur et on quitte le programme
- #exit() est une fonction qui termine le programme
- print("Formato data non valido. Assicurati di usare YYYY-MM-DD.")
- exit()
- #datetime.today() est une méthode de la classe datetime qui renvoie la date et l'heure actuelles sous forme d'objet datetime
- #ici on l'utilise pour recuperer la date actuelle et la garder dans la variable oggi
- oggi = datetime.today()
- #ici en bas je prend l'annee actuelle - l'annee de naissance que l'utilisateur a entré
- #et je soustrait 1 si la date actuelle est prima della data di nascita
- #c'est a dire si le mois et le jour de la date actuelle sont inférieurs au mois et au jour de la date de naissance
- #cela nous permet de calculer l'âge de l'utilisateur
- #en tenant compte de la date actuelle et de la date de naissance
- #en quelque sorte je calcule si mon anniversaire est déjà passé ou pas
- #si mon anniversaire est déjà passé, je garde l'age tel quel
- #si mon anniversaire n'est pas encore passé, je soustrait 1 à l'age
- #et la partie ((oggi.month, oggi.day) < (data_nascita.month, data_nascita.day)) renvoie True vaut 1 ou False vaut 0
- #ce qui nous donne un age correct
- eta = oggi.year - data_nascita.year - ((oggi.month, oggi.day) < (data_nascita.month, data_nascita.day))
- #ici je verifie si l'age est supérieur ou égal à 18 ans
- #si c'est le cas, je dis que l'utilisateur est majeur j'entre dans la première partie de l'instruction if
- #sinon je dis que l'utilisateur est mineur j'entre dans le else
- if eta >= 18:
- print(f"Ciao {nome}, hai {eta} anni. Sei maggiorenne!")
- else:
- print(f"Ciao {nome}, hai {eta} anni. Sei minorenne!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement