import json from datetime import datetime, timedelta import random # 定義員工名單(八名中文、兩名英文)和對應員工編號 employees = [ {"姓名": "陳大明", "員工編號": "001"}, {"姓名": "李小華", "員工編號": "002"}, {"姓名": "王小美", "員工編號": "003"}, {"姓名": "林大志", "員工編號": "004"}, {"姓名": "黃佳玲", "員工編號": "005"}, {"姓名": "趙明華", "員工編號": "006"}, {"姓名": "劉大強", "員工編號": "007"}, {"姓名": "張小英", "員工編號": "008"}, {"姓名": "John Doe", "員工編號": "009"}, {"姓名": "Jane Smith", "員工編號": "010"} ] # 定義上班狀態 work_status_options = ["已上班", "未上班未請假", "未上班已請假"] weekend_status = "休假" # 設定日期範圍,2024年11月1日至11月30日 start_date = datetime(2024, 11, 1) end_date = datetime(2024, 11, 30) # 建立請假狀態表 attendance_data = [] # 生成每個日期和員工的上班狀態 current_date = start_date while current_date <= end_date: for employee in employees: if current_date.weekday() >= 5: # 週六日設為休假 status = weekend_status elif current_date <= datetime(2024, 11, 12): # 11月12日及以前隨機分布上班狀態 status = random.choice(work_status_options) else: # 11月13日以後保持工作日空白 status = "" if current_date.weekday() < 5 else weekend_status attendance_data.append({ "日期": current_date.strftime("%Y-%m-%d"), "姓名": employee["姓名"], "員工編號": employee["員工編號"], "當日上班狀態": status }) current_date += timedelta(days=1) # 儲存為 JSON 檔案 json_path = '/mnt/data/attendance_data_november_2024.json' with open(json_path, 'w', encoding='utf-8') as f: json.dump(attendance_data, f, ensure_ascii=False, indent=4)