summaryrefslogtreecommitdiff
path: root/date.py
diff options
context:
space:
mode:
authorAdrien Di Mascio <Adrien.DiMascio@logilab.fr>2006-07-27 09:20:31 +0200
committerAdrien Di Mascio <Adrien.DiMascio@logilab.fr>2006-07-27 09:20:31 +0200
commit44672fce498f061e61285236070916459e19d6e3 (patch)
tree4eb6f3bc9b3778dfde1ecfd213340e5aa045a6a9 /date.py
parent5afecc749d5d7ce1916922ae0d915b21d46d94af (diff)
downloadlogilab-common-44672fce498f061e61285236070916459e19d6e3.tar.gz
french holidays
Diffstat (limited to 'date.py')
-rw-r--r--date.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/date.py b/date.py
index c1c475e..32474cb 100644
--- a/date.py
+++ b/date.py
@@ -36,3 +36,44 @@ def date_range(begin, end, step=1):
# yield date
# date = RelativeDateTime(months=+1)
+FRENCH_FIXED_HOLIDAYS = {
+ 'jour_an' : '%s-01-01',
+ 'fete_travail' : '%s-05-01',
+ 'armistice1945' : '%s-05-08',
+ 'fete_nat' : '%s-07-14',
+ 'assomption' : '%s-08-15',
+ 'toussaint' : '%s-11-01',
+ 'armistice1918' : '%s-11-11',
+ 'noel' : '%s-12-25',
+ }
+
+
+FRENCH_MOBILE_HOLIDAYS = {
+ 'paques2004' : '2004-04-12',
+ 'ascension2004' : '2004-05-20',
+ 'pentecote2004' : '2004-05-31',
+
+ 'paques2005' : '2005-03-28',
+ 'ascension2005' : '2005-05-05',
+ 'pentecote2005' : '2005-05-16',
+
+ 'paques2006' : '2006-04-17',
+ 'ascension2006' : '2006-05-25',
+ 'pentecote2006' : '2006-06-05',
+
+ 'paques2007' : '2007-04-09',
+ 'ascension2007' : '2007-05-17',
+ 'pentecote2007' : '2007-05-28',
+ }
+
+
+def get_national_holidays(begin, end):
+ """return french national days off between begin and end"""
+ holidays = [strptime(datestr, '%Y-%m-%d')
+ for datestr in FRENCH_MOBILE_HOLIDAYS.values()]
+ for year in xrange(begin.year, end.year+1):
+ holidays += [strptime(datestr % year, '%Y-%m-%d')
+ for datestr in FRENCH_FIXED_HOLIDAYS.values()]
+ return [day for day in holidays if begin <= day < end]
+
+