Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## Programme affichant la date, le jour, la saison etc jusqu'à l'année 100 000
- from datetime import *
- duree = datetime(2017,10,18) - datetime(1,1,1) # Test de la date selon le module
- print (duree)
- ## Préférence de boucle while au test if si l'utilisateur entre plusieurs fois de suite une mauvaise donnée
- def saisie (txt,date,min,max): ## Création des variables de jours, mois et années
- print(txt,": ")
- date = int(input())
- while date < min or date > max:
- print(txt,"que vous avez demandé incorrect.",txt,"compris entre",min,"et",max,)
- date = int(input("recommencez: "))
- return date
- def bissextile(A):
- if A%4 == 0 and A%100 != 0 or A%400 == 0: ## Test pour savoir si l'année est bissextile
- bissextile = True
- else: bissextile = False
- return bissextile
- A,M,J = 0,0,0
- J = saisie('Jour',J,1,31)
- M = saisie('Mois',M,1,12)
- A = saisie('Annee',A,1,100000)
- bissextile = bissextile(A)
- mois_30_jours = [4,6,9,11] ## Création d'une liste pour les mois de 30 jours
- while M in mois_30_jours and J == 31:
- J = int(input("cette combinaison jour/mois n'est pas compatible, le mois possède 30 jours, saisissez un nouveau jour: "))
- while M == 2 and J >=29 and bissextile == False:
- 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: "))
- jours_ecc_cett_annee = int(((30.41*(M-1)+J-1)))
- if bissextile == True and M > 2:
- jours_ecc_cett_annee +=1
- jours_ecc_an_0 = 365*(A-1)+A*0.2425 + jours_ecc_cett_annee
- jours_ecc_an_0 = int(jours_ecc_an_0)
- ## Découpage des saisons en fonction des jours écoulés
- if jours_ecc_cett_annee <= 82 or jours_ecc_cett_annee >=355:
- saison = "hiver"
- elif jours_ecc_cett_annee > 82 and jours_ecc_cett_annee <= 173:
- saison = "printemps"
- elif jours_ecc_cett_annee <= 174 and jours_ecc_cett_annee > 266:
- saison = "été"
- else: saison = "automne"
- ## 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
- ## En partant du principe que le 1/1/1 est un lundi
- jours=['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche']
- for i in range(0,7):
- if jours_ecc_an_0%7 == i:
- joursemaine=jours[i]
- ## Affichage final pour l'utilisateur
- print("La date choisie est ",J,"/",M,"/",A)
- if bissextile == True:
- print("L'année",A,"est bissextile")
- else: print("L'année",A,"n'est pas bissextile")
- if M in mois_30_jours:
- print("Le mois ",M,"/",A,"compte 30 jours")
- elif M ==2 and bissextile == True:
- print("Le mois ",M,"/",A,"compte 29 jours")
- elif M == 2 and bissextile != True:
- print("Le mois ",M,"/",A,"compte 28 jours")
- else: print("Le mois ",M,"/",A,"compte 31 jours.")
- 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