Advertisement
Guest User

Untitled

a guest
Oct 20th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. ## Programme affichant la date, le jour, la saison etc jusqu'à l'année 100 000
  2.  
  3. from datetime import *
  4. duree = datetime(2017,10,18) - datetime(1,1,1) # Test de la date selon le module
  5. print (duree)
  6. ## Préférence de boucle while au test if si l'utilisateur entre plusieurs fois de suite une mauvaise donnée
  7.  
  8. def saisie (txt,date,min,max): ## Création des variables de jours, mois et années
  9. print(txt,": ")
  10. date = int(input())
  11. while date < min or date > max:
  12. print(txt,"que vous avez demandé incorrect.",txt,"compris entre",min,"et",max,)
  13. date = int(input("recommencez: "))
  14. return date
  15.  
  16. def bissextile(A):
  17. if A%4 == 0 and A%100 != 0 or A%400 == 0: ## Test pour savoir si l'année est bissextile
  18. bissextile = True
  19. else: bissextile = False
  20. return bissextile
  21.  
  22. A,M,J = 0,0,0
  23. J = saisie('Jour',J,1,31)
  24. M = saisie('Mois',M,1,12)
  25. A = saisie('Annee',A,1,100000)
  26. bissextile = bissextile(A)
  27. mois_30_jours = [4,6,9,11] ## Création d'une liste pour les mois de 30 jours
  28.  
  29. while M in mois_30_jours and J == 31:
  30. J = int(input("cette combinaison jour/mois n'est pas compatible, le mois possède 30 jours, saisissez un nouveau jour: "))
  31. while M == 2 and J >=29 and bissextile == False:
  32. J = int(input("cette combinaison jour/mois n'est pas compatible, l'année n'est pas bissextile et vous avez demandé le mois de fevrier, saisissez un nouveau jour: "))
  33. jours_ecc_cett_annee = int(((30.41*(M-1)+J-1)))
  34. if bissextile == True and M > 2:
  35. jours_ecc_cett_annee +=1
  36. jours_ecc_an_0 = 365*(A-1)+A*0.2425 + jours_ecc_cett_annee
  37. jours_ecc_an_0 = int(jours_ecc_an_0)
  38.  
  39. ## Découpage des saisons en fonction des jours écoulés
  40. if jours_ecc_cett_annee <= 82 or jours_ecc_cett_annee >=355:
  41. saison = "hiver"
  42. elif jours_ecc_cett_annee > 82 and jours_ecc_cett_annee <= 173:
  43. saison = "printemps"
  44. elif jours_ecc_cett_annee <= 174 and jours_ecc_cett_annee > 266:
  45. saison = "été"
  46. else: saison = "automne"
  47.  
  48. ## Découpage des jours de la semaine en fonction du reste de la division par 7 du nombre total de jours écoulés depuis le 1/1/1
  49. ## En partant du principe que le 1/1/1 est un lundi
  50.  
  51. jours=['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche']
  52. for i in range(0,7):
  53. if jours_ecc_an_0%7 == i:
  54. joursemaine=jours[i]
  55.  
  56. ## Affichage final pour l'utilisateur
  57. print("La date choisie est ",J,"/",M,"/",A)
  58. if bissextile == True:
  59. print("L'année",A,"est bissextile")
  60. else: print("L'année",A,"n'est pas bissextile")
  61. if M in mois_30_jours:
  62. print("Le mois ",M,"/",A,"compte 30 jours")
  63. elif M ==2 and bissextile == True:
  64. print("Le mois ",M,"/",A,"compte 29 jours")
  65. elif M == 2 and bissextile != True:
  66. print("Le mois ",M,"/",A,"compte 28 jours")
  67. else: print("Le mois ",M,"/",A,"compte 31 jours.")
  68. print("Cette date est en",saison,".\nIl s'est écoulé ",jours_ecc_an_0,"jours entre le 1/1/1 et le",J,"/",M,"/",A,".\nIl s'est écoulé ",int(jours_ecc_cett_annee-1),"jours entre le 1/1/",A,"et le ",J,"/",M,"/",A,".\nC'est un ",joursemaine,".")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement