calendar-agent / knowledge_base.md
theame's picture
Upload 8 files
ba0f779 verified
# 年月日知识库
- KB_ID: kb_ymd_week_cn_cards_detail
- Version: 2.0
- Updated: 2026-03-27
- Scope: 年月日基础 + 平/闰年 + 大小月/特殊月 + 日时换算 + 星期推算 + 日期推算(跨月/跨年)+ 季度天数 + 常见应用题口径
- Retrieval: 单 Markdown 全量检索(卡片化:Title/Tags/Trigger)
- Default_Convention:
- 持续N天:开始当天算第1天(结束=开始+N-1)
- 星期推算:用间隔天数 d,取 r=d mod 7
- 未指明口径:按 Default_Convention 作答,并在结尾注明口径
---
## 全局答题输出规范
回答任何题目时,按以下结构输出(提高一致性与可解释性):
1) **结论**:先给最终答案(日期/星期/天数)
2) **关键步骤**:只写必要算式与推理(避免冗长)
3) **口径说明**:若涉及“持续N天/保质期”,必须写“是否包含当天”
4) **检查点**:简单自检一句(如“未跨月/已跨月”“余数为0所以星期不变”)
---
# Cards(知识卡片库)
> 字段含义:
> - Alias:常见同义说法/检索别名(非常关键)
> - Trigger:用户真实提问句式(尽量口语)
> - Output:建议智能体最终输出的格式
---
## CARD-001|一年有几个月
- Title: 一年有12个月
- Alias: 12个月 / 一年分几个月 / 一年有哪些月份
- Tags: 年, 月, 基础概念
- Trigger:
- “一年有几个月?”
- “一年到底分成几个月?”
- “一年是不是12个月?”
- “12个月是哪12个?”
- Content:
- 一年有 **12 个月**(1月到12月)。
- Output:
- “一年有12个月。”
---
## CARD-010|平年与闰年的定义
- Title: 平年/闰年定义(365/366天;2月28/29)
- Alias: 平年多少天 / 闰年多少天 / 2月为什么28或29 / 闰日
- Tags: 平年, 闰年, 2月, 年天数, 定义
- Trigger:
- “平年有多少天?”
- “闰年有多少天?”
- “闰年比平年多几天?”
- “2月为什么有时28天有时29天?”
- Content:
- **平年**:2月28天,全年365天。
- **闰年**:2月29天,全年366天(比平年多1天)。
- Examples:
- 问:闰年全年多少天?答:366天。
- Output:
- “平年365天(2月28天);闰年366天(2月29天)。”
---
## CARD-020|闰年判断(重中之重)
- Title: 闰年判断(非整百看4,整百看400)
- Alias: 判断闰年方法 / 闰年规则 / 百年闰年 / 400年规则 / 四年一闰
- Tags: 闰年判断, 平年判断, 整百年, 400, 4, 规则
- Trigger:
- “2026年是闰年吗?”
- “怎么判断一个年份是平年还是闰年?”
- “整百年怎么判断闰年?”
- “能被4整除就是闰年吗?”
- “1900为什么不是闰年?2000为什么是闰年?”
- Steps:
1) 看是否整百年:年份末两位是否为“00”
2) 若**不是整百年**
- 能被4整除 → 闰年
- 不能被4整除 → 平年
3) 若**是整百年**(末两位为00):
- 能被400整除 → 闰年
- 否则 → 平年
- Content:
- 速记:**四年一闰,百年不闰,四百年再闰**(公历)。
- Examples:
- 2024:非整百,2024÷4整除 → 闰年
- 2025:非整百,2025÷4有余数 → 平年
- 1900:整百,1900÷400不整除 → 平年
- 2000:整百,2000÷400整除 → 闰年
- Counterexamples:
- “4的倍数一定是闰年”是错的:1900是反例(整百但不是400倍数)。
- Pitfalls:
- 忽略“整百年”这一关会做错世纪年。
- Output:
- 结论:____年是(平年/闰年)
- 理由:是否整百年;能否被4/400整除(写一句即可)
---
## CARD-030|大月/小月/特殊月(清单)
- Title: 月份分类(31天大月;30天小月;2月特殊)
- Alias: 哪些月31天 / 哪些月30天 / 大月有哪些 / 小月有哪些 / 2月算大月还是小月
- Tags: 大月, 小月, 特殊月, 月份天数, 2月
- Trigger:
- “哪些月份有31天?”
- “哪些月份只有30天?”
- “2月算大月还是小月?”
- “9月有几天?11月有几天?”
- Content:
- **大月(31天)**:1、3、5、7、8、10、12月(共7个)
- **小月(30天)**:4、6、9、11月(共4个)
- **特殊月**:2月(平年28天/闰年29天),不计入大/小月
- Examples:
- 问:9月有几天?答:30天(小月)。
- Pitfalls:
- 2月不要归为大月或小月。
- Output:
-__月是(大月/小月/特殊月),有__天。”
---
## CARD-031|月份天数表(速查表)
- Title: 月份天数表(1-12月)
- Alias: 月份天数一览表 / 每个月多少天 / 天数表
- Tags: 表格, 月份天数, 速查
- Trigger:
- “给我一张月份天数表”
- “每个月分别是多少天?”
- Content:
| 月份 | 天数 |
|---|---|
| 1 | 31 |
| 2 | 28(平年)/ 29(闰年) |
| 3 | 31 |
| 4 | 30 |
| 5 | 31 |
| 6 | 30 |
| 7 | 31 |
| 8 | 31 |
| 9 | 30 |
| 10 | 31 |
| 11 | 30 |
| 12 | 31 |
- Output:
- 若问2月:先按 CARD-020 判断平/闰年,再给28或29。
---
## CARD-040|记忆法(口诀/数字规律/拳头法)
- Title: 大小月记忆法(顺口溜 + 数字规律 + 拳头法)
- Alias: 背大小月口诀 / 31天月份口诀 / 七前单月大 / 拳头记忆法
- Tags: 口诀, 记忆法, 大月, 小月
- Trigger:
- “怎么记住哪些月31天?”
- “七前单月大什么意思?”
- “拳头记忆法怎么用?”
- Content:
- 顺口溜:
- 一三五七八十腊;三十一天永不差;
- 四六九冬三十日;平年二月二十八;闰年二月把一加。
- 注:腊=12月,冬=11月
- 数字规律:
- 七前单月大,八后双月大,二月特殊算。
- 拳头法(要点):
- 握拳从1月开始数,**凸起=31天****凹陷=30天**;2月单独记。
- Output:
- 给出一种最短可用的记忆法(优先顺口溜或清单)。
---
## CARD-050|日与时换算
- Title: 1日=24时(常用换算)
- Alias: 一天多少小时 / 24小时等于几天 / 半天多少小时
- Tags: 单位换算, 日, 时
- Trigger:
- “一天多少小时?”
- “2天多少小时?”
- “半天是多少小时?”
- Content:
- 1日=24时
- 半日=12时
- 2日=48时
- 3日=72时
- Output:
-__日=__时”(必要时附一行乘法)。
---
## CARD-060|星期顺序(基础)
- Title: 星期顺序(周一到周日循环)
- Alias: 周日后面是周几 / 星期怎么排 / 周一前面是周几
- Tags: 星期, 顺序, 基础
- Trigger:
- “周日后面是周几?”
- “星期怎么排顺序?”
- Content:
- 周一 → 周二 → 周三 → 周四 → 周五 → 周六 → 周日 →(回到周一)
- Examples:
- 周日后面是周一。
- Output:
- 直接输出目标星期。
---
## CARD-061|星期推算(取余三步法)
- Title: 星期推算三步法(d、mod7、推进)
- Alias: 间隔天数÷7看余数 / 余数星期不变 / 周几推算公式
- Tags: 星期推算, 取余, mod7, 间隔天数
- Trigger:
- “已知某天是周几,过几天是周几?”
- “从周三开始过20天是周几?”
- “1月1日周三,1月15日周几?”
- Steps:
1) 计算间隔天数 d
2) r = d mod 7
3) 起始星期往后推 r 天(r=0星期不变)
- Content:
- 同月常用:从 a日到 b日间隔天数 d = b - a
- Examples:
- 1月1日周三 → 1月15日:
- d=15-1=14
- r=14 mod7=0
- 星期不变 → 周三
- 周二往后20天:
- r=20 mod7=6
- 推6天:周二 → 周一
- Pitfalls:
- 忘记取余会错;整7天不改变星期。
- Output:
- “d=__,r=__,从周__往后推__天 → 周__。”
---
## CARD-070|持续N天(默认口径:开始当天算第1天)
- Title: 持续N天:结束=开始+N-1
- Alias: N天后是哪天 / 活动持续N天到几号结束 / 从某日开始N天结束日
- Tags: 日期推算, 持续N天, 口径, +N-1
- Trigger:
- “从某天开始算N天到哪天?”
- “活动持续N天到几号结束?”
- “开始那天算不算第一天?”
- Content:
- 默认口径:开始当天算第1天
- 结束日期 = 开始日期 + N − 1
- 反推开始:开始日期 = 结束日期 − N + 1
- Examples:
- 3月2日开始15天(不跨月):
- 结束=2+15-1=16 → 3月16日
- Pitfalls:
- 忘记“-1”会多算一天。
- Output:
- “按开始当天算第1天:结束=开始+N-1 → ____日。”
---
## CARD-071|跨月日期推算(模板:先扣本月剩余)
- Title: 跨月推算:先扣本月剩余,再进下月
- Alias: 跨月怎么算 / 30日开始N天 / 月底开始N天
- Tags: 跨月, 日期推算, 本月剩余, 模板
- Trigger:
- “4月30日开始3天到哪天?”
- “跨月怎么计算不出错?”
- Steps:
1) 查本月天数 T(30/31/28/29)
2) 本月可用天数 S = T - 起始日 + 1(默认口径)
3) 若 N ≤ S:结束在本月,结束日 = 起始日 + N - 1
4) 若 N > S:
- N = N - S
- 月份 +1(跨年则年份+1,月份归1)
- 进入下个月从1日继续,重复步骤1~4
- Examples:
- 4月30日开始持续3天(默认口径):
- 本月可用 S = 30-30+1=1
- N=3>1 → 剩余 N=2
- 5月1日第2天,5月2日第3天 → 5月2日
- Pitfalls:
- 不先扣本月剩余,直接相加容易越界。
- Output:
- “本月先用__天,剩__天到下月,结果____日。”
---
## CARD-072|跨年日期推算(分段:先到12月31日)
- Title: 跨年推算:先到12月31日,再从次年1月1日继续
- Alias: 跨年怎么算 / 12月开始N天 / 到明年几月几日
- Tags: 跨年, 日期推算, 分段
- Trigger:
- “12月开始算N天会到明年吗?”
- “跨年日期怎么推算?”
- Content:
- 跨年一律分两段:
- 段1:从开始日期算到当年12月31日(用CARD-071跨月方法也可)
- 段2:剩余天数从次年1月1日起继续推算
- Examples:
- 12月30日开始5天(默认口径):
- 12月30日第1天,12月31日第2天
- 剩余3天到次年:1月1日第3天,1月2日第4天,1月3日第5天
- 结果:次年1月3日
- Output:
- “先到本年12月31日用掉__天,剩__天到次年 → ____月__日。”
---
## CARD-080|日序DOY(进阶工具)
- Title: 日序DOY:某日期是一年中的第几天
- Alias: 一年第几天 / 今年第几天 / DOY怎么算
- Tags: 日序, DOY, 跨月, 跨年, 进阶
- Trigger:
- “3月1日是一年第几天?”
- “闰年3月1日为什么不一样?”
- “DOY是什么?”
- Content:
- 定义:1月1日为第1天
- 计算:DOY =(1月到(M-1)月的总天数)+ D
- 若 M>2 且该年为闰年:DOY 再 +1(因为2月多一天)
- Examples:
- 平年3月1日:31 + 1 = 32
- 闰年3月1日:31 + 1 + 1 = 33
- Output:
-__月__日是这一年的第__天(若闰年且过了2月,+1)。”
---
## CARD-090|季度天数(完整:Q1受2月影响)
- Title: 季度天数(Q1平年90/闰年91,其余固定)
- Alias: 第一季度多少天 / 每个季度多少天 / Q1 Q2 Q3 Q4
- Tags: 季度, 天数, 第一季度, 平年闰年
- Trigger:
- “平年第一季度多少天?”
- “闰年第一季度多少天?”
- “第二季度多少天?”
- Content:
- 一年4个季度(每季度3个月)
- Q1(1-2-3月):
- 平年:31+28+31=90
- 闰年:31+29+31=91
- Q2(4-5-6月):30+31+30=91(平/闰都一样)
- Q3(7-8-9月):31+31+30=92(平/闰都一样)
- Q4(10-11-12月):31+30+31=92(平/闰都一样)
- Output:
- “先判平/闰年,再给对应季度天数。”
---
## CARD-100|连续两个大月只有:7月和8月
- Title: 连续两个大月只有:7月和8月
- Alias: 连续31天的两个月 / 连着两个大月 / 7月8月为什么都31天
- Tags: 大月, 连续
- Trigger:
- “一年里连续的两个大月是哪两个月?”
- Content:
- 连续的两个大月只有一组:**7月和8月**。
- Output:
- “7月和8月。”
---
## CARD-110|题干口径词典(持续N天/保质期:包含当天 or 不含当天)
- Title: 持续N天/保质期:包含当天 or 不含当天
- Alias: 为什么差一天 / 算不算当天 / 从次日开始怎么理解
- Tags: 口径, 持续天数, 保质期, 易错
- Trigger:
- “持续N天算不算当天?”
- “从次日开始是什么意思?”
- “为什么答案总差一天?”
- Content:
- 默认口径(题目未特别说明):
- 开始当天算第1天
- 结束=开始+N-1
- 若题目出现:`不含当天` / `从次日开始` / `第二天起`
- 开始当天不算第1天
- 常等价:结束=开始+N(而不是+N-1)
- 若题目出现:`包含当天` / `算上当天`
- 按默认:结束=开始+N-1
- Output:
- 回答结尾必须加一句:`按题意口径:包含/不含开始当天。`
---
## CARD-120|保质期/到期日题(统一模板)
- Title: 保质期/到期日:先定口径,再按持续N天推
- Alias: 生产日期+保质期 / 到期日怎么算 / 食品过期时间
- Tags: 保质期, 到期日, 日期推算, 模板
- Trigger:
- “牛奶生产日期10月11日,保质期30天,到期日是哪天?”
- “保质期30天包含生产当天吗?”
- Steps:
1) 先用 CARD-110 确认口径:是否含生产当天
2) 用 CARD-070 求结束(若跨月用 CARD-071)
3) 输出到期日,并在末尾写口径一句话
- Output:
- “口径:____(含/不含生产当天)”
- “计算:结束=开始+N-1(或+N)…(必要时跨月扣减)”
- “到期日:__月__日”
---
## CARD-900|易错点总卡(一次收束)
- Title: 年月日与推算常见易错点(含反例)
- Alias: 易错点 / 注意事项 / 常见错误 / 纠错卡
- Tags: 易错点, 纠错, 反例
- Trigger:
- “年月日有哪些容易错的?”
- “闰年最常见错误是什么?”
- “跨月跨年要注意什么?”
- Content:
- 闰年判断:整百年要看400(1900平年、2000闰年)
- 2月:平年28天、闰年29天;2月不算大月/小月
- 持续N天:默认要+N-1(否则差一天)
- 星期:必须mod7,整7天星期不变
- 跨月:先扣本月剩余再进下月,别直接加日期越界
- Output:
- 用条目列出;必要时给1900/2000反例或说明“差一天”的原因
---
## (可选)建议内部检索标签(不必输出给用户)
## 大月 小月 特殊月 2月 平年 闰年 闰年判断 整百年 400 4
## 星期 推算 取余 mod7 间隔天数
## 持续N天 开始当天算第1天 不含当天 次日开始
## 跨月 跨年 日序 DOY 季度 第一季度
## 口径 差一天 保质期 到期日