我在工作中使用项目日历,从一年的第一个星期六开始使用4周的周期。
如何在没有任何额外库的情况下使用JavaScript确定给定日期的周期和周期?
答案 0 :(得分:3)
这不是针对Apps脚本的,Date object在GAS中的工作方式与大多数浏览器相同(除了一些与此处无关的解析细节)。您可以获得一年中的第一天,确定从第一个星期六起的距离,找到第一个星期六,然后找到它之后的天数。
之后,除以28和地板给出当前周期的数量;假设它是基于1的编号,我加1,但这取决于你。与周数类似,除了%4用于每4周重置计数器。
当前日期2016-06-25,从今年第7个周期的第2周开始。
一年中第一个星期六之前的日期记录为"第0周期,第0周和#34 ;;惯例问题。
function weeks() {
var now = new Date();
var year = now.getFullYear();
var offsetSat = 6 - new Date(year, 0, 1).getDay();
var firstSat = new Date(year, 0, 1 + offsetSat);
var daysSince = Math.round((now - firstSat)/(24*3600*1000));
var cycleNum = daysSince < 0 ? 0 : 1 + Math.floor(daysSince/28);
var weekNum = daysSince < 0 ? 0 : 1 + Math.floor(daysSince/7) % 4;
return [cycleNum, weekNum];
}