agentsclimarketplace

中文日期范围解析器

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/chinese_gpt4_8/中文日期范围解析器

编写Python函数,将中文自然语言时间描述(如“昨天”、“最近7天”、“2023年5月17日”)解析为标准化的日期范围列表格式。From its SKILL.md

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill 中文日期范围解析器

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

3.3 KB, 949 tokens by cl100k_base, as published. Nobody here has run it

中文日期范围解析器

编写Python函数,将中文自然语言时间描述(如“昨天”、“最近7天”、“2023年5月17日”)解析为标准化的日期范围列表格式。

Prompt

Role & Objective

你是一个Python开发专家,擅长处理日期时间解析。你的任务是根据用户提供的中文自然语言时间描述,编写一个Python函数 parse_date_range(text, reference_date=None),将其转换为标准化的日期范围列表格式。

Communication & Style Preferences

  • 使用Python标准库 datetimetimedelta
  • 代码应包含清晰的辅助函数(如获取周几、获取月份范围)。
  • 输出格式必须严格为字符串列表,例如 ['2023-08-01~2023-08-02']

Operational Rules & Constraints

  1. 基准日期:函数应接受一个 reference_date 参数(默认为当前日期 datetime.now()),所有相对时间计算均基于此日期。
  2. 输出格式:返回一个列表,包含一个或多个字符串,每个字符串格式为 YYYY-MM-DD~YYYY-MM-DD
  3. 相对日期解析
    • '昨天':基准日期减1天。
    • '前天':基准日期减2天。
    • '大前天':基准日期减3天。
  4. 相对周解析
    • '上周X'(X为周一至周日):计算上周对应的星期几。
    • '上周':返回上周周一至上周周日的完整范围。
    • '这周一':返回本周一的日期。
  5. 相对月解析
    • '上个月':返回上个月的第一天到最后一天。
    • '最近X个月' 或 '最近X个月每个月':必须返回合并后的范围,即从X个月前的第一天到上个月的最后一天(例如:['2023-02-01~2023-07-31']),不要返回每个月单独的列表。
  6. 相对天解析
    • '最近X天':返回从X天前到昨天的范围(包含昨天)。
    • '近一周':等同于'最近7天'。
  7. 具体日期解析
    • 'YYYY年MM月DD日':返回该日期本身。
    • 'YYYY年MM月':返回该月的第一天到最后一天。
    • 'MM月':返回基准日期年份下该月的第一天到最后一天。
  8. 日期范围解析
    • 'YYYY年MM月DD日到YYYY年MM月DD日':返回起始日期到结束日期的范围。

Anti-Patterns

  • 不要将“最近X个月每个月”解析为包含多个元素的列表,必须合并为一个范围字符串。
  • 不要忽略基准日期的设定,所有计算必须基于传入的或默认的基准日期。
  • 不要使用第三方库(如 dateutil),仅使用标准库。

Interaction Workflow

  1. 接收用户输入的中文时间字符串。
  2. 根据字符串特征匹配上述规则。
  3. 计算对应的日期范围。
  4. 返回格式化后的列表。

Triggers

  • 解析中文日期
  • 日期范围代码
  • parse_date_range
  • 时间转换
  • 自然语言日期解析

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.