BTS SIO - Notes de cours

Accueil > Seconde Année > Algorithmique > Calcul du nombre de jour écoulés

Calcul du nombre de jour écoulés

mercredi 23 octobre 2013, par

Algorithme IndiceDuJour
Paramètres : j,m,a tels que a-m-j soit une date valide format ISO
Résultat : n nombre de jours entre le 1600-01-01 et la date a-m-j
Variables : T tableau de nombre de jours cumulés entre 01/01 et début du mois

Début
  T<-[0,31,59,90,120,151,181,212,243,273,304,334]
  nbrAnneeBisextile<-(a-1600)/4-(a-1600)/100+(a-1600)/400+1
  nbrJour<-(a-1600)*365+nbrAnneeBisextile
  Si m>3 alors
     si a%4=0 alors
        si a%100 != 0 ou a%400=0 alors
           nbrJour-<nbrJour+1
        fin si
     fin si
  nbrJour<-nbrJour+T[m]+j-1
  retourner nbrJour
Fin

Algorithme NomDuJour
Paramètres : j,m,a tels que a-m-j soit une date valide format ISO
Résultat : le nom du jour en Français

Début
  T<-["Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"]
  retourner T[(IndiceDuJour(j,m,a)+5)%7]
Fin

Implémentation en Python

def IndiceDuJour(j,m,a):
        T=[0,31,59,90,120,151,181,212,243,273,304,334]
        nbrAnneeBisextile=(a-1601)/4-(a-1601)/100+(a-1601)/400+1
        if a==1600:
                nbrAnneeBisextile=0
        nbrJour=(a-1600)*365+nbrAnneeBisextile
        if m>2:
                if a%4==0:
                        if a%100!=0 or a%400==0:
                                nbrJour=nbrJour+1
        nbrJour=nbrJour+T[m-1]+j-1
        return nbrJour

def NomDuJour(j,m,a):
        T=["Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"]
        return(T[(IndiceDuJour(j,m,a)+5)%7])

Un message, un commentaire ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.