import calendar from datetime import date, datetime import json def _calculate_release_weeks(): """Prepare data for dim_release_week.""" c = calendar.Calendar(firstweekday=calendar.FRIDAY) data = [] for year in range(1900, 2050): week_number = 1 for month in range(1, 13): weeks = c.monthdatescalendar(year, month) for week in weeks: if week[-1] <= date( year, month, calendar.monthrange(year, month)[1]): data.append({ 'year': year, 'week_number': week_number, 'first_day': datetime.strftime(week[0], '%Y-%m-%d'), 'last_day': datetime.strftime(week[-1], '%Y-%m-%d') }) week_number += 1 res = json.dumps(data) with open('dates.json', 'wt') as f: f.write(res)