From fc192cf946f939b694bc33e6a1cdd90dd5b8844e Mon Sep 17 00:00:00 2001 From: koko <1429659362@qq.com> Date: Thu, 4 Sep 2025 17:17:59 +0800 Subject: [PATCH] birthday --- birthday/birthday.py | 65 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 birthday/birthday.py diff --git a/birthday/birthday.py b/birthday/birthday.py new file mode 100644 index 0000000..d9f86fb --- /dev/null +++ b/birthday/birthday.py @@ -0,0 +1,65 @@ +# add_birthday.py +import json +import os + +DATA_FILE = 'birthday/data/birthdays.json' + + +def load_birthdays(): + """从JSON文件中加载生日数据""" + if not os.path.exists(DATA_FILE): + return [] + with open(DATA_FILE, 'r', encoding='utf-8') as f: + try: + return json.load(f) + except json.JSONDecodeError: + return [] + + +def save_birthdays(birthdays): + """将生日数据保存到JSON文件""" + with open(DATA_FILE, 'w', encoding='utf-8') as f: + # indent=4让文件格式更美观, ensure_ascii=False确保中文正常显示 + json.dump(birthdays, f, indent=4, ensure_ascii=False) + + +def main(): + """主函数,用于添加生日""" + birthdays = load_birthdays() + print("--- 生日信息添加程序 ---") + print("当前已记录的生日:") + for person in birthdays: + print(f"- {person['name']}: {person['birthday']}") + print("\n输入新的生日信息(输入姓名时直接按回车结束):") + + while True: + name = input("请输入姓名: ").strip() + if not name: + break + + birthday_str = input(f"请输入 {name} 的生日 (格式 YYYY-MM-DD): ").strip() + + # 简单校验格式 (更复杂的校验可以引入日期库) + if len(birthday_str.split('-')) != 3: + print("格式错误,请重新输入!") + continue + + # 检查是否已存在,存在则更新 + found = False + for person in birthdays: + if person['name'] == name: + print(f"已存在 {name} 的记录,将生日更新为 {birthday_str}") + person['birthday'] = birthday_str + found = True + break + + if not found: + birthdays.append({'name': name, 'birthday': birthday_str}) + print(f"已添加 {name} 的生日: {birthday_str}") + + save_birthdays(birthdays) + print("\n生日信息已保存!") + + +if __name__ == "__main__": + main() \ No newline at end of file