在集成自动化平台(如钉钉宜搭、简道云、腾讯云微搭等)中,获取“本周的初始日期”(通常是周一)和“结束日期”(通常是周日),通常需要使用平台提供的公式/函数来计算。具体方法因平台而异,但核心思路是通用的。
以下是几种常见平台的实现方法:
通用思路
获取今天日期:使用
TODAY()或NOW()函数。计算今天是星期几:通常,周日是1,周一到周六是2到7。
计算周一日期:用今天日期减去
(今天是星期几 - 2)天。如果今天是周日(1),则减去6天。计算周日日期:周一日期 + 6天。
具体平台示例
1. 钉钉宜搭 (DingTalk Yida)
宜搭的公式编辑器支持 TODAY(), WEEKDAY(), DATEADD() 等函数。
本周一日期:
// 如果今天是周日,WEEKDAY(TODAY()) 返回1,需要特殊处理 IF(WEEKDAY(TODAY()) = 1, DATEADD(TODAY(), -6, "d"), DATEADD(TODAY(), -(WEEKDAY(TODAY()) - 2), "d"))
本周日日期:
// 先计算周一,再加6天 DATEADD( IF(WEEKDAY(TODAY()) = 1, DATEADD(TODAY(), -6, "d"), DATEADD(TODAY(), -(WEEKDAY(TODAY()) - 2), "d")), 6, "d" )
2. 简道云
简道云的公式函数与 Excel 类似。
本周一日期:
TODAY() - WEEKDAY(TODAY(), 2) + 1
WEEKDAY(TODAY(), 2)返回1(周一)到7(周日)。TODAY() - (WEEKDAY(TODAY(), 2) - 1)就是周一。本周日日期:
TODAY() - WEEKDAY(TODAY(), 2) + 7
3. 腾讯云微搭 (WeDa)
微搭的 JS 脚本能力较强。
在 JS 脚本中编写:
// 获取今天 const today = new Date(); // 获取今天是星期几 (0=周日, 1=周一, ..., 6=周六) const dayOfWeek = today.getDay(); // 计算周一 let monday = new Date(today); // 如果今天是周日 (0),则减去6天;否则减去 (dayOfWeek - 1) 天 const diffToMonday = dayOfWeek === 0 ? 6 : dayOfWeek - 1; monday.setDate(today.getDate() - diffToMonday); // 计算周日 let sunday = new Date(today); const diffToSunday = dayOfWeek === 0 ? 0 : 7 - dayOfWeek; sunday.setDate(today.getDate() + diffToSunday); // 返回结果 (根据平台要求格式化) return { start: monday.toISOString().split('T')[0], // 格式: YYYY-MM-DD end: sunday.toISOString().split('T')[0] };
注意事项
星期定义:确认平台中
WEEKDAY函数的返回值定义(周日是1还是周一是1)。时区:确保系统时区设置正确,避免日期计算偏差。
数据类型:确保公式返回的是日期类型,而不是文本。
平台文档:最准确的方法是查阅你所使用的集成自动化平台的官方公式函数文档。
总结:
你需要根据你使用的具体平台,查找其支持的日期函数(如 TODAY, WEEKDAY, DATEADD),然后利用“今天日期 - 偏移量”来计算周一,再通过“周一 + 6天”来计算周日。