-#=============== TODO TRAVAIL CALCUL JOURS OUVRES ==============================
-# def _annee_bissextile(self, annee): # TODO vérifier le besoin de self
-# """ Retourne vrai si l'année est bissextile, faux sinon. """
-# return (annee % 4 == 0 and annee % 100 != 0 or annee % 400 == 0)
-#
-#
-# def _get_date_paques(self, annee): # TODO vérifier le besoin de self
-# """
-# Retourne la date du dimanque de pâques pour une année donnée
-# sous la forme d'un objet date.
-# """
-# a = annee % 19
-# b = annee // 100
-# c = annee % 100
-# d = (19 * a + b - b // 4 - ((b - (b + 8) // 25 + 1) // 3) + 15) % 30
-# e = (32 + 2 * (b % 4) + 2 * (c // 4) - d - (c % 4)) % 7
-# f = d + e - 7 * ((a + 11 * d + 22 * e) // 451) + 114
-# mois = f // 31
-# jours = f % 31 + 1
-# return date(annee, mois, jours)
-#
-#
-# def get_jours_feries(self, annee):
-# """
-# Retourne une liste contenant les jours fériés d'une année donnée.
-# """
-# date_paques = _get_date_paques(self, annee)
-# return [
-# date_paques+timedelta(days=1), # Lundi de Pâques
-# date_paques+timedelta(days=39), # Jeudi de l'Ascension
-# date_paques+timedelta(days=50), # Lundi de Pentecôte
-# date(annee, 1, 1), # Jour de l'An
-# date(annee, 5, 1), # Fête du travail
-# date(annee, 5, 8), # Armistice 1945
-# date(annee, 7, 14), # Fête Nationale
-# date(annee, 8, 15), # Assomption
-# date(annee, 11, 1), # Toussaint
-# date(annee, 11, 11), # Armistice 1918
-# date(annee, 12, 25), # Noël
-# ]
-#
-# def _jour_ouvre(self, d):
-# """ Retourne vrai si la date est un jour ouvre, faux sinon."""
-# if (5,6).__contains__(d.weekday()) or _get_jours_feries(d.year).__contains__(d):
-# return False
-# else:
-# return True
-#
-# def _nb_jours_ouvre_entre_2_dates(self, d1, d2):
-# """
-# Retourne le nombre de jours ouvres entre deux dates données.
-#
-# >>> nb_jours_ouvre_entre_2_dates(date(2013, 5, 1), date(2013, 7, 31))
-# 62
-# >>> nb_jours_ouvre_entre_2_dates(date(2013, 7, 31), date(2013, 5, 1))
-# 62
-# """
-# if d1>d2:
-# d1, d2 = d2, d1 # Switch les 2 dates pour que d1 soit la plus petite
-# tmp = d1
-# jour_ouvres = 0
-# while tmp <= d2:
-# if _jour_ouvre(self, tmp): # Si tmp est un jour ouvre
-# jour_ouvres += 1
-# tmp += timedelta(days=1)
-# return jour_ouvres
-#===============================================================================
+#=============== TODO TRAVAIL CALCUL JOURS OUVRES =============================
+
+ @staticmethod
+ def _get_date_paques(annee): # TODO vérifier le besoin de self
+ """
+ Retourne la date du dimanque de pâques pour une année donnée
+ sous la forme d'un objet date.
+ """
+ a = annee % 19
+ b = annee // 100
+ c = annee % 100
+ d = (19 * a + b - b // 4 - ((b - (b + 8) // 25 + 1) // 3) + 15) % 30
+ e = (32 + 2 * (b % 4) + 2 * (c // 4) - d - (c % 4)) % 7
+ f = d + e - 7 * ((a + 11 * d + 22 * e) // 451) + 114
+ mois = f // 31
+ jours = f % 31 + 1
+ return date(annee, mois, jours)
+
+
+ @staticmethod
+ def _get_jours_feries(annee):
+ """
+ Retourne une liste contenant les jours fériés d'une année donnée.
+ """
+ date_paques = Mesurable._get_date_paques(annee)
+ return [
+ date_paques+timedelta(days=1), # Lundi de Pâques
+ date_paques+timedelta(days=39), # Jeudi de l'Ascension
+ date_paques+timedelta(days=50), # Lundi de Pentecôte
+ date(annee, 1, 1), # Jour de l'An
+ date(annee, 5, 1), # Fête du travail
+ date(annee, 5, 8), # Armistice 1945
+ date(annee, 7, 14), # Fête Nationale
+ date(annee, 8, 15), # Assomption
+ date(annee, 11, 1), # Toussaint
+ date(annee, 11, 11), # Armistice 1918
+ date(annee, 12, 25), # Noël
+ ]
+
+
+ @staticmethod
+ def _jour_ouvre(d):
+ """ Retourne vrai si la date est un jour ouvre, faux sinon."""
+ if (5,6).__contains__(d.weekday()) or Mesurable._get_jours_feries(d.year).__contains__(d):
+ return False
+ else:
+ return True
+
+
+ @staticmethod
+ def _nb_jours_ouvre_entre_2_dates(d1, d2):
+ """
+ Retourne le nombre de jours ouvres entre deux dates données.
+
+ >>> nb_jours_ouvre_entre_2_dates(date(2013, 5, 1), date(2013, 7, 31))
+ 62
+ >>> nb_jours_ouvre_entre_2_dates(date(2013, 7, 31), date(2013, 5, 1))
+ 62
+ """
+ if d1>d2:
+ d1, d2 = d2, d1 #Switch les 2 dates pour que d1 soit la plus petite
+ tmp = d1
+ jour_ouvres = 0
+ while tmp <= d2:
+ if Mesurable._jour_ouvre(tmp): # Si tmp est un jour ouvre
+ jour_ouvres += 1
+ tmp += timedelta(days=1)
+ return jour_ouvres
+
+#==============================================================================