Advertisement
Derik_hacker

Untitled

Apr 4th, 2025
387
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.05 KB | None | 0 0
  1. from datetime import datetime
  2.  
  3.  
  4. nome = input("Inserisci il tuo nome: ") # ici input nous permet de recuperer le nom de l'utilisateur et le garder dans la variable nom
  5. 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
  6.  
  7. #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)
  8. #si l'utilisateur ne respecte pas ce format, le code entre dans except et affiche un message d'erreur
  9. #par contre si l'utilisateur respecte le format, le code entre dans try et la date de naissance est convertie en un objet datetime
  10. try:
  11.    
  12.     data_nascita = datetime.strptime(data_nascita_str, "%Y-%m-%d")
  13.  
  14.     #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
  15.     #c'est a dire sous le format YYYY-MM-DD(annee-mois-jour)
  16.     #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
  17. except ValueError:
  18.     # ValueError est une exception qui est levée lorsque la conversion échoue
  19.     #cela signifie que la chaîne de caractères ne correspond pas au format spécifié (YYYY-MM-DD)
  20.     #dans ce cas, on affiche un message d'erreur et on quitte le programme
  21.     #exit() est une fonction qui termine le programme
  22.     print("Formato data non valido. Assicurati di usare YYYY-MM-DD.")
  23.     exit()
  24.  
  25. #datetime.today() est une méthode de la classe datetime qui renvoie la date et l'heure actuelles sous forme d'objet datetime
  26. #ici on l'utilise pour recuperer la date actuelle et la garder dans la variable oggi
  27. oggi = datetime.today()
  28. #ici en bas je prend l'annee actuelle - l'annee de naissance que l'utilisateur a entré
  29. #et je soustrait 1 si la date actuelle est prima della data di nascita
  30. #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
  31. #cela nous permet de calculer l'âge de l'utilisateur
  32. #en tenant compte de la date actuelle et de la date de naissance
  33.  
  34. #en quelque sorte je calcule si mon anniversaire est déjà passé ou pas
  35. #si mon anniversaire est déjà passé, je garde l'age tel quel
  36. #si mon anniversaire n'est pas encore passé, je soustrait 1 à l'age
  37. #et la partie ((oggi.month, oggi.day) < (data_nascita.month, data_nascita.day)) renvoie True vaut 1 ou  False vaut 0
  38. #ce qui nous donne un age correct
  39.  
  40. eta = oggi.year - data_nascita.year - ((oggi.month, oggi.day) < (data_nascita.month, data_nascita.day))
  41.  
  42. #ici je verifie si l'age est supérieur ou égal à 18 ans
  43. #si c'est le cas, je dis que l'utilisateur est majeur j'entre dans la première partie de l'instruction if
  44. #sinon je dis que l'utilisateur est mineur j'entre dans le else
  45. if eta >= 18:
  46.     print(f"Ciao {nome}, hai {eta} anni. Sei maggiorenne!")
  47. else:
  48.     print(f"Ciao {nome}, hai {eta} anni. Sei minorenne!")
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement