如果今天 = date_in_cell(或今天的迭代 + X)- Google 应用 / Javascript
If today = date_in_cell (or iteration of today + X) - Google Apps / Javascript
我想每隔 X 天(单元格中的日期之后)发送电子邮件提醒,直到用户更改行中的状态。
一次性日期条件很简单 EG:
If date = today OR date = today + 2 OR date = today + 4
在我的 "settings" sheet 上,我有一个 "frequency" 设置,其中设置了电子邮件提醒之间的天数。
是否可以在 if 语句中放置一个循环?例如:
If today = date_in_cell OR today = date_in_cell + any multiple of X
IE - 单元格中的日期是星期一。我想要周三、周五、周日、周二、周四等(永远)的电子邮件。
您正在查找余数运算符 (%
)。您计算开始日期和今天之间的天数差异,然后如果它大于 0 并且该数字 %
天数为 0,则需要发送提醒的那一天:
var elapsed = Math.floor((today - dt) / ONE_DAY_IN_MS);
var sendEmail = elapsed > 0 && elapsed % days == 0;
实例:
var ONE_DAY_IN_MS = 1000 * 60 * 60 * 24; // Defined by the spec
function format(dt) {
var rv = [dt.getFullYear()];
var n = dt.getMonth() + 1;
rv.push(n < 10 ? "0" + n : n);
var n = dt.getDate();
rv.push(n < 10 ? "0" + n : n);
return rv.join("-");
}
function test(dt, today, days) {
var elapsed = Math.floor((today - dt) / ONE_DAY_IN_MS);
var sendEmail = elapsed > 0 && elapsed % days == 0;
console.log(format(dt), format(today), sendEmail ? "Yes" : "No");
}
document.getElementById("btn").addEventListener("click", function() {
console.clear();
var dt = new Date(2018, 0, 1); // Jan 1st
var today = new Date(2018, 0, 1); // Jan 1st
var days = +document.getElementById("days").value;
for (var n = 0; n < 10; ++n) {
today.setDate(today.getDate() + 1);
test(dt, today, days);
}
});
<input type="number" id="days" value="2">
<input type="button" id="btn" value="Show">
我想每隔 X 天(单元格中的日期之后)发送电子邮件提醒,直到用户更改行中的状态。
一次性日期条件很简单 EG:
If date = today OR date = today + 2 OR date = today + 4
在我的 "settings" sheet 上,我有一个 "frequency" 设置,其中设置了电子邮件提醒之间的天数。
是否可以在 if 语句中放置一个循环?例如:
If today = date_in_cell OR today = date_in_cell + any multiple of X
IE - 单元格中的日期是星期一。我想要周三、周五、周日、周二、周四等(永远)的电子邮件。
您正在查找余数运算符 (%
)。您计算开始日期和今天之间的天数差异,然后如果它大于 0 并且该数字 %
天数为 0,则需要发送提醒的那一天:
var elapsed = Math.floor((today - dt) / ONE_DAY_IN_MS);
var sendEmail = elapsed > 0 && elapsed % days == 0;
实例:
var ONE_DAY_IN_MS = 1000 * 60 * 60 * 24; // Defined by the spec
function format(dt) {
var rv = [dt.getFullYear()];
var n = dt.getMonth() + 1;
rv.push(n < 10 ? "0" + n : n);
var n = dt.getDate();
rv.push(n < 10 ? "0" + n : n);
return rv.join("-");
}
function test(dt, today, days) {
var elapsed = Math.floor((today - dt) / ONE_DAY_IN_MS);
var sendEmail = elapsed > 0 && elapsed % days == 0;
console.log(format(dt), format(today), sendEmail ? "Yes" : "No");
}
document.getElementById("btn").addEventListener("click", function() {
console.clear();
var dt = new Date(2018, 0, 1); // Jan 1st
var today = new Date(2018, 0, 1); // Jan 1st
var days = +document.getElementById("days").value;
for (var n = 0; n < 10; ++n) {
today.setDate(today.getDate() + 1);
test(dt, today, days);
}
});
<input type="number" id="days" value="2">
<input type="button" id="btn" value="Show">