Google Apps脚本(日历)-比较如果两个事件是在同一天
Google Apps Script (Calendar) - Compare if 2 events are in the same day
我不知道JavaScript(我知道一点Java),但我想写一个简单的脚本,删除我的学校类事件时,有一个假期事件,但它根本不起作用…有什么问题吗?
function vacations()
{
var school_calendar = CalendarApp.getCalendarsByName("Timetable")[0].getEvents(new Date("September 1, 2016"),new Date("June 20, 2017"));
var vacations = CalendarApp.getCalendarsByName("Vacations")[0].getEvents(new Date("September 1, 2016"),new Date("June 20, 2017"));
for (var i = 0; i < vacations.length; i++)
{
var vacation = vacations[i];
for (var j = 0; j < school_calendar.length; j++)
{
var school_class = school_calendar[j];
if(vacation.getAllDayStartDate() == school_class.getStartTime())
{
school_class.deleteEvent();
}
}
}
}
比较日期vacation.getAllDayStartDate()
和日期school_class.getStartTime()
可以工作,如果你比较它们:
vacation.getAllDayStartDate().getTime() === school_class.getStartTime().getTime()
但是,其中一个包含时间设置为午夜的日期:
getAllDayStartDate ()
获取此全天日历事件开始的日期。(如果这是不是一个全天的事件,那么这个方法将抛出异常。)的返回的日期将代表一天开始时的午夜事件在脚本的时区中开始。要使用请调用getStartTime()。
另一个包含日期和时间:
getStartTime ()
获取此日历事件开始的日期和时间。为非全天事件,这将是在时间的瞬间,其中事件被定义为启动。对于全天事件,它只存储一个开始日期(不是日期和时间),这将是午夜时分事件在日历时间中开始的那一天的开始区。这允许对所有类型的开始时间进行有意义的比较的事件;然而,它不一定会保留原来的day-of-year修改的。
对于全天事件,getAllDayStartDate()应该几乎总是优先于此方法调用
确保比较正确的格式,并使用调试器或Logger来查看代码中的内容。
相关文章:
- 如何在这里将两个值最低的数字相加
- 在Qualtrics中,介绍如何动态连接两个滑块
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 可以't在JavaScript中比较两个字符串
- 如何在有延迟的情况下对两个代码进行积分
- 在servlet中提交两个表单
- 将循环中的两个文本框相乘,并在第三个文本框上显示结果
- 在ES6中,模块将导致多个网络调用,因为两个模块不能在单个文件中定义
- 在Google Analytics中跟踪用户,但只能在两个操作之间跟踪
- 在HTML包围的javascript中添加两个变量
- 如何在两个不同的iframe HTML之间进行通信
- jQuery在两个字符串标识符之间选择HTML
- sailsjs在创建两个模型时的错误处理
- 交换两个在它们之间具有 som 修复标记的 HTML 标记
- 两个在圆圈内旋转的箭头
- Google Apps脚本(日历)-比较如果两个事件是在同一天
- 两个在页面加载时运行的函数
- jquery工具叠加-两个在同一个页面上
- 显示随机项目从数组上按一下按钮,没有两个在一排
- 需要第三个异步函数执行后的前两个在js执行