Birthday Reminder
2026-03-31
新闻来源:网淘吧
围观:21
电脑广告
手机广告
生日提醒技能
自然地管理生日。存储在data/birthdays.md文件中,支持自然语言查询。
存储
生日数据存储在/home/clawd/clawd/data/birthdays.md文件中:

# Geburtstage
- **Valentina** - 14.02.2000 (wird 26)
- **Max** - 15.03.1990
自然语言模式
添加生日
当用户说出类似以下内容时:
- "瓦伦蒂娜的生日是2月14日"
- "添加:马克斯,1990年3月15日"
- "X出生于1985年5月10日"
操作:
- 解析姓名和日期
- 如果提供则提取年份
- 计算即将到来的年龄:
生日年份 - 出生年份 - 追加到
/home/clawd/clawd/data/birthdays.md - 文件并确认年龄信息
查询生日
瓦伦蒂娜的生日是什么时候?
- 接下来有哪些生日?
- 瓦伦蒂娜将满多少岁?
- 下一个生日
- 操作:
读取
- /home/clawd/clawd/data/birthdays.md
解析所有条目 - 计算距离每个生日的天数
- 按即将到来的日期排序
- 如果已知年份,显示将满的年龄
- 列出所有
当用户说:
"显示所有生日"
- "列出我的生日"
- 操作:
读取文件
- 显示带距离天数的格式化列表
- 日期解析
支持多种格式:
"2月14日" → 14.02
- "14.02." → 14.02
- "14.02." → 14.02
- "14.02.2000" → 14.02.2000
- "14.2.2000" → 14.02.2000
年龄计算
from datetime import datetime
def calculate_turning_age(birth_year, birthday_month, birthday_day):
today = datetime.now()
birthday_this_year = today.replace(month=birthday_month, day=birthday_day)
if today.date() <= birthday_this_year.date():
birthday_year = today.year
else:
birthday_year = today.year + 1
return birthday_year - birth_year
距离生日天数
def days_until(month, day):
today = datetime.now()
birthday = today.replace(month=month, day=day)
if birthday < today:
birthday = birthday.replace(year=today.year + 1)
return (birthday - today).days
自动提醒
对于cron/提醒,每日检查生日并在以下情况时通知:
- 提前7天
- 提前1天
- 当天
使用来自check_reminders()的逻辑,该逻辑位于scripts/reminder.py文件中。
文件格式
每行格式:- **姓名** - DD.MM.YYYY (将X岁)或- **姓名** - DD.MM.
请按日期(月/日)对文件进行排序,以便于阅读。
文章底部电脑广告
手机广告位-内容正文底部


微信扫一扫,打赏作者吧~