每个月创建一个没有周末的全天活动
Create an all-day event every month without weekends
我正在尝试让 Google Apps 脚本在每个月的 10 日创建一个名为“发薪日”的活动,但如果 10 日是周六或周日,则必须在最后一天创建该活动10号(星期五)之前的工作日。
到目前为止,这是我设法得到的最接近的:
var start = new Date(); // The event start date
var numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];
var days = [
CalendarApp.Weekday.SUNDAY,
CalendarApp.Weekday.MONDAY,
CalendarApp.Weekday.TUESDAY,
CalendarApp.Weekday.WEDNESDAY,
CalendarApp.Weekday.THURSDAY,
CalendarApp.Weekday.FRIDAY,
CalendarApp.Weekday.SATURDAY
];
var weekday = days[start.getDay()];
var monthday = start.getDate();
var mod = monthday % 7 - 1;
var good_days = numbers.slice(monthday-mod, monthday-mod+7)
var recurrence = CalendarApp.newRecurrence();
recurrence.addWeeklyRule().onlyOnWeekday(weekday).onlyOnMonthDays(good_days);
非常感谢任何帮助。
function createNextMonthsTrigger() {
let d = 10;
const nmd = new Date(new Date().getFullYear(), new Date().getMonth() + 1, d).getDay();
if (nmd == 6) {
d = 9;
} else if (nmd == 0) {
d = 8;
}
ScriptApp.getProjectTriggers().forEach(t => {
if (t.getHandlerFunction() == 'createMyEvent') {
ScriptApp.deleteTrigger(t);
}
});
ScriptApp.newTrigger('createMyEvent').timeBased().onMonthDay(d).atHour(1).create();
}
我正在尝试让 Google Apps 脚本在每个月的 10 日创建一个名为“发薪日”的活动,但如果 10 日是周六或周日,则必须在最后一天创建该活动10号(星期五)之前的工作日。
到目前为止,这是我设法得到的最接近的:
var start = new Date(); // The event start date
var numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];
var days = [
CalendarApp.Weekday.SUNDAY,
CalendarApp.Weekday.MONDAY,
CalendarApp.Weekday.TUESDAY,
CalendarApp.Weekday.WEDNESDAY,
CalendarApp.Weekday.THURSDAY,
CalendarApp.Weekday.FRIDAY,
CalendarApp.Weekday.SATURDAY
];
var weekday = days[start.getDay()];
var monthday = start.getDate();
var mod = monthday % 7 - 1;
var good_days = numbers.slice(monthday-mod, monthday-mod+7)
var recurrence = CalendarApp.newRecurrence();
recurrence.addWeeklyRule().onlyOnWeekday(weekday).onlyOnMonthDays(good_days);
非常感谢任何帮助。
function createNextMonthsTrigger() {
let d = 10;
const nmd = new Date(new Date().getFullYear(), new Date().getMonth() + 1, d).getDay();
if (nmd == 6) {
d = 9;
} else if (nmd == 0) {
d = 8;
}
ScriptApp.getProjectTriggers().forEach(t => {
if (t.getHandlerFunction() == 'createMyEvent') {
ScriptApp.deleteTrigger(t);
}
});
ScriptApp.newTrigger('createMyEvent').timeBased().onMonthDay(d).atHour(1).create();
}