You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

筛选今日前后X天内的行:生日与纪念日列表处理需求

筛选今日前后X天内的生日/纪念日记录

原始按序排列的生日/纪念日列表:

8/14/2023   Person 1 (26)  
8/18/2023   Person 2 (15)  
9/29/2023   Person 3 (44)  
10/3/2023   Person 4 (4)  
10/26/2023  Person 5 (13)  
11/6/2023   Person 6 (13)  
11/11/2023  Person 7 (2)  
11/12/2023  Person 8 Anniversary (40)  

方法一:用Excel/Google Sheets快速筛选

  1. 先把数据整理成两列:A列放日期,B列放人员/纪念日备注。
  2. 假设要筛选今日前后7天的记录(把7换成你需要的X值即可),在C1单元格输入公式:
    =AND(A1>=TODAY()-7, A1<=TODAY()+7)
    
  3. 把公式下拉到所有行,C列显示TRUE的就是符合条件的记录。
  4. 选中整个数据区域,点击「数据」→「筛选」,筛选C列为TRUE的行,就能得到目标列表。

如果是每年重复的生日/纪念日(只看月日,不看年份),用这个公式判断:

=AND(DATEDIF(TODAY(), DATE(YEAR(TODAY()), MONTH(A1), DAY(A1)), "d")<=7, DATEDIF(TODAY(), DATE(YEAR(TODAY()), MONTH(A1), DAY(A1)), "d")>=-7)

方法二:用Python脚本批量处理

如果数据是文本格式,写个简单脚本就能自动筛选:

from datetime import datetime, timedelta

# 原始数据
raw_records = [
    "8/14/2023   Person 1 (26)",
    "8/18/2023   Person 2 (15)",
    "9/29/2023   Person 3 (44)",
    "10/3/2023   Person 4 (4)",
    "10/26/2023  Person 5 (13)",
    "11/6/2023   Person 6 (13)",
    "11/11/2023  Person 7 (2)",
    "11/12/2023  Person 8 Anniversary (40)"
]

# 设置前后天数范围
X = 7
today = datetime.today()
start = today - timedelta(days=X)
end = today + timedelta(days=X)

# 筛选符合条件的记录
filtered = []
for line in raw_records:
    date_part, name_part = line.split("   ", 1)
    record_date = datetime.strptime(date_part, "%m/%d/%Y")
    if start <= record_date <= end:
        filtered.append(line)

# 输出结果
print("筛选后的记录:")
for item in filtered:
    print(item)

运行后会直接输出今日前后X天内的记录。如果需要忽略年份,修改日期判断逻辑,只比较月日即可。

内容的提问来源于stack exchange,提问作者Mathias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 17:14:59