xordiz | Code :
- def o():
- print()
- programme()
- def n():
- quit()
- def programme():
-
-
- print ("##################" )
- print("Entrer le jour:" )
- Jours=input()
- Jours=int(Jours)
- print("Entrer le mois:" )
- Mois=input()
- Mois=int(Mois)
- print("Entrer l'Année(Superieur ou égale à 1960):" )
- Année=input()
- Année=int(Année)
- DateValable(Jours, Mois, Année)
- print()
- CalculJourDepuis1960(Jours, Mois, Année)
- print()
-
- CalculJour(CalculJourDepuis1960)
- print()
- x=input("Voulez-vous recommencer ? o/n : " ) #Si la date rentrée n'a pas trouver sa place parmi toutes les conditions c'est que ce n'est pas une date valable.
- if x=="o":
- o()
- else:
- n()
- #######################################################
- #"Date Valable"
- #Marc Bouin Terminale SSI
- #Lycée Réaumur - Laval
- #######################################################
- def DateValable(Jours, Mois, Année): # Ce programme a pour but de dire si une date existe ou pas en fonction des années bissextile.
-
- b = Année%4 # on définit b, c et d pour pouvoir différencier les années bissextile des autres années par la suite.
- c = Année%100
- d = Année%400
-
- if b != 0 and Mois%2==0 and Mois in range(1,8)and Année >= 1960 and Jours in range(1,31) or Mois==2 and Jours in range(1,29): #Si l'année n'est pas bissextile (non divisible par 4) et pour les mois de 1 à 7 divisible par 2 on a 30 jours éxcepté le mois de février qui aura 28 jours.
- print("Date Valable." )
- elif b != 0 and Mois%2!=0 and Mois in range(1,8)and Année >= 1960 and Jours in range(1,32): #Sinon on a 31 jours.
- print("Date Valable." )
- elif b != 0 and Mois%2==0 and Mois in range(8,13)and Année >= 1960 and Jours in range(1,32): #Si l'année n'est pas bissextile (non divisible par 4) et pour les mois de 8 à 12 divisible par 2 on a 31 jours.
- print("Date Valable." )
- elif b != 0 and Mois%2!=0 and Mois in range(8,13)and Année >= 1960 and Jours in range(1,31): #Sinon on a 30 jours.
- print("Date Valable." )
-
-
- elif b == 0 and c != 0 and Mois%2==0 and Mois in range(1,8)and Année >= 1960 and Jours in range(1,31) or Mois==2 and Jours in range(1,30): #Si l'année est bissextile (divisible par 4 mais non divisible par 100) et pour les mois de 1 à 7 divisible par 2 on a 30 jours éxcepté le mois de février qui aura 29 jours.
- print("Date Valable." )
- elif b == 0 and c != 0 and Mois%2!=0 and Mois in range(1,8) and Année >= 1960 and Jours in range(1,32): #Sinon on a 31 jours.
- print("Date valable." )
- elif b == 0 and c != 0 and Mois%2==0 and Mois in range(8,13) and Année >= 1960 and Jours in range(1,32): #Si l'année est bissextile (divisible par 4 mais non divisible par 100) et pour les mois de 8 à 12 divisible par 2 on a 31 jours.
- print("Date valable." )
- elif b == 0 and c != 0 and Mois%2!=0 and Mois in range(8,13) and Année >= 1960 and Jours in range(1,31): #Sinon on a 30 jours.
- print("Date valable." )
- elif d == 0 and Mois%2==0 and Mois in range(1,8) and Année >= 1960 and Jours in range(1,31) or Mois==2 and Jours in range(1,30): #Si l'année est bissextile (divisible par 400 pour ces dernières conditions) et pour les mois de 1 à 7 divisible par 2 on a 30 jours éxcepté le mois de février qui aura 29 jours.
- print("Date valable." )
- elif d == 0 and Mois%2!=0 and Mois in range(1,8) and Année >= 1960 and Jours in range(1,32): #Sinon on a 31 jours.
- print("Date valable." )
- elif d == 0 and Mois%2==0 and Mois in range(8,13) and Année >= 1960 and Jours in range(1,32): #Si l'année est bissextile (divisible par 400 pour ces dernières conditions) et pour les mois de 8 à 12 divisible par 2 on a 31 jours.
- print("Date valable." )
- elif d == 0 and Mois%2!=0 and Mois in range(8,13) and Année >= 1960 and Jours in range(1,31): #Sinon on a 30 jours.
- print("Date valable." )
- else :
- x=input("Date non valable, recommencez ? o/n : " ) #Si la date rentrée n'a pas trouver sa place parmi toutes les conditions c'est que ce n'est pas une date valable.
- if x=="o":
- o()
- else:
- n()
- #######################################################
- #"Calcul de Jours depuis 1960"
- #Benoît Taunais Terminale SSI
- #Lycée Réaumur - Laval
- #######################################################
- def bissextile(Année):
- r=Année%4 #On associe à r le reste de la division euclidienne de l'Année par 4
- s=Année%100 #On associe à s le reste de la division euclidienne de l'Année 100
- t=Année%400 #On associe à t le reste de la division euclidienne de l'Année par 400
- if r!=0:
- b = 0
- elif s==0:
- if t!=0:
- b = 0
- else:
- b = 1
- else:
- b = 1
- return b
- def CalculJourDepuis1960(Jours, Mois, Année):
-
- Sommejours=0
- if Mois==1:
- Sommejours=Jours # JANVIER
- elif Mois==2:
- Sommejours=31+Jours #Janvier + Jours
- elif Mois==3:
- Sommejours=59+bissextile(Année)+Jours #28+ bissextile +31 + Jours
- elif Mois==4:
- Sommejours=90+bissextile(Année)+Jours #31+28+ bissextile +31 + Jours
- elif Mois==5:
- Sommejours=120+bissextile(Année)+Jours #30+31+28+ bissextile +31 + Jours
- elif Mois==6:
- Sommejours=151+bissextile(Année)+Jours #31+30+31+28+ bissextile +31 + Jours
- elif Mois==7:
- Sommejours=181+bissextile(Année)+Jours #30+31+30+31+28+ bissextile +31 + Jours
- elif Mois==8:
- Sommejours=212+bissextile(Année)+Jours #31+30+31+30+31+28+ bissextile +31 + Jours
- elif Mois==9:
- Sommejours=243+bissextile(Année)+Jours #31+31+30+31+30+31+28+ bissextile +31 + Jours
- elif Mois==10:
- Sommejours=273+bissextile(Année)+Jours #30+31+31+30+31+30+31+28+ bissextile +31 + Jours
- elif Mois==11:
- Sommejours=304+bissextile(Année)+Jours #31+30+31+31+30+31+30+31+28+ bissextile +31 + Jours
- elif Mois==12:
- Sommejours=334+bissextile(Année)+Jours #30+31+30+31+31+30+31+30+31+28+ bissextile +31 + Jours
- #
- CalculJourDepuis1960=Sommejours
- for i in range (1960,Année):
- CalculJourDepuis1960= CalculJourDepuis1960 + 365 + bissextile(i)
-
- print (CalculJourDepuis1960)
-
- return (CalculJourDepuis1960)
- ###################################################################
- ######################################################
- #Fonction CalculJour : Affiche le jour correspondant.#
- ###EDIT BY JOREL, 23/11/2012##
- #----------------------------------------------------#
- def CalculJour(CalculJourDepuis1960):
- # nombreJours
-
-
- jour = ['Jeudi','Vendredi','Samedi','Dimanche','Lundi','Mardi','Mercredi'] #Le 01/01/1960 était un Vendredi.
- a, b = 0, 0 #Créer 2 nombre a & b = 0
- while a<CalculJourDepuis1960: #Tant que a < nombreJours, alors :
- a = a + 1 #On ajoute 1 à a
- b = a % 7 # b prend la valeur du reste de la division de a par 7
- print("Ce jour est un", jour[b],"." ) #Affiche le jour correspondant.
- #####################################################
- programme()
|
Voici mon programme, le but : en entrant une date à partir du 01/01/1960 jusqu'à aujourd'hui, le programme doit me répondre le nom du jour de la date entrée (lundi, mardi,...).
Mon problème est dans cette partie là :
Code :
- def CalculJour(CalculJourDepuis1960):
- # nombreJours
-
-
- jour = ['Jeudi','Vendredi','Samedi','Dimanche','Lundi','Mardi','Mercredi'] #Le 01/01/1960 était un Vendredi.
- a, b = 0, 0 #Créer 2 nombre a & b = 0
- while a<CalculJourDepuis1960: #Tant que a < nombreJours, alors :
- a = a + 1 #On ajoute 1 à a
- b = a % 7 # b prend la valeur du reste de la division de a par 7
- print("Ce jour est un", jour[b],"." ) #Affiche le jour correspondant.
|
Lorsque je lance le programme, IDLE me répond :
Code :
- ##################
- Entrer le jour:
- 27
- Entrer le mois:
- 11
- Entrer l'Année(Superieur ou égale à 1960):
- 2012
- Date valable.
- 19325
- Traceback (most recent call last):
- File "I:\programmes\projet\testprojet.py", line 160, in <module>
- programme()
- File "I:\programmes\projet\testprojet.py", line 25, in programme
- CalculJour(CalculJourDepuis1960)
- File "I:\programmes\projet\testprojet.py", line 151, in CalculJour
- while a<CalculJourDepuis1960: #Tant que a < nombreJours, alors :
- TypeError: unorderable types: int() < function()
|
Donc le nombre CalculJourDepuis1960, ici "19325", n'est pas considéré comme un nombre mais comme une fonction. Comment puis je faire pour utiliser ce nombre pour la suite de mon programme ? J'ai essayé toutes les possibilités que je connais et je n'y arrive pas =(. |