diff --git a/app.py b/app.py index 8c498c6..0b10f53 100644 --- a/app.py +++ b/app.py @@ -217,13 +217,20 @@ def api_tage_werktage(): start = data.get('start') end = data.get('end') is_werktage = data.get('werktage', False) + bundesland = data.get('bundesland') try: d1 = datetime.strptime(start, '%Y-%m-%d') d2 = datetime.strptime(end, '%Y-%m-%d') if is_werktage: if d1 > d2: d1, d2 = d2, d1 - tage = int(np.busday_count(d1.date(), (d2 + timedelta(days=1)).date())) + holidays = [] + if bundesland: + # Feiertage für alle Jahre im Bereich holen + years = set([d1.year, d2.year]) + for y in years: + holidays.extend(get_feiertage(y, bundesland)) + tage = int(np.busday_count(d1.date(), (d2 + timedelta(days=1)).date(), holidays=holidays)) else: tage = abs((d2 - d1).days) return jsonify({'result': tage}) diff --git a/static/swagger.json b/static/swagger.json index 4c1ab0a..41966be 100644 --- a/static/swagger.json +++ b/static/swagger.json @@ -21,7 +21,12 @@ "properties": { "start": { "type": "string", "format": "date" }, "end": { "type": "string", "format": "date" }, - "werktage": { "type": "boolean", "default": false } + "werktage": { "type": "boolean", "default": false }, + "bundesland": { + "type": "string", + "description": "Bundesland-Kürzel für Feiertagsberücksichtigung (nur bei werktage=true)", + "enum": ["BW", "BY", "BE", "BB", "HB", "HH", "HE", "MV", "NI", "NW", "RP", "SL", "SN", "ST", "SH", "TH"] + } }, "required": ["start", "end"] }