如何在特定法定假日停止Google App Script的工作日触发器?
修改后的工作日触发脚本(排除指定法定假日)
以下是调整后的完整代码,已加入排除1月26日、8月15日、10月2日的逻辑:
function shouldRunTrigger() { // 定义需要排除的法定假日(格式:"月份-日期",注意月份从0开始) var publicHolidays = ["0-26", "7-15", "9-2"]; var date = new Date(); var dayOfWeek = date.getDay(); // 判断是否是周末(周日=0,周六=6) if (dayOfWeek === 0 || dayOfWeek === 6) { return false; } // 组合当前日期的"月-日"字符串 var currentMonthDay = date.getMonth() + "-" + date.getDate(); // 检查是否属于法定假日 if (publicHolidays.includes(currentMonthDay)) { return false; } return true; } function myTrigger() { if (!shouldRunTrigger()) return; // 这里写你的触发逻辑代码 }
关键修改说明:
- 新增
publicHolidays数组存储需排除的日期,格式为"月份-日期",注意JavaScript的getMonth()返回值是0(对应1月)到11(对应12月),所以1月对应0、8月对应7、10月对应9。 - 保留原有的周末判断逻辑,确保周末不执行脚本。
- 通过
getMonth()和getDate()获取当前月日并组合成统一格式,用includes()方法检查是否在假日列表中,若是则返回false终止执行。 - 仅当日期既不是周末、也不在法定假日列表时,才返回
true允许触发后续逻辑。
内容的提问来源于stack exchange,提问作者Rajesh
相关产品推荐
相关产品推荐

