import pandas as pd # import numpy as np # import holidays import datetime import chinese_calendar def month_da(month_days, year, month): days = 1 days_end = month_days start_time = datetime.date(year, month, days) # 指定开始时间 end_time = datetime.date(year, month, days_end) # 指定结束时间 workdays = pd.DataFrame(chinese_calendar.get_workdays(start_time, end_time)) workdays = workdays.rename(columns={0: '日期'}) workdays['姓名'] = '√' hd = pd.DataFrame(chinese_calendar.get_holidays(start_time, end_time)) hd = hd.rename(columns={0: '日期'}) hd['姓名'] = '○' data_all = pd.concat([workdays, hd]).sort_values(by='日期').reset_index(drop=False) data_all = data_all[['日期', '姓名']].T data_all.columns = data_all.columns + 1 return data_all def save_data(data, year, month): data_str = str(year) + '年' + str(month) + '月' data.to_excel(f"./{data_str}考勤表.xlsx") year = int(input("请输入一个年份")) data_year = pd.DataFrame() for month in range(1, 13): if (month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12): month_days = 31 data = month_da(month_days, year, month) save_data(data, year, month) elif month == 2: try: month_days = 29 data = month_da(month_days, year, month) save_data(data, year, month) except: month_days = 28 data = month_da(month_days, year, month) save_data(data, year, month) else: month_days = 30 data = month_da(month_days, year, month) save_data(data, year, month)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交