使用JavaScript确定“周期”和周

时间:2016-06-25 00:08:39

标签: javascript date datetime google-apps-script

我在工作中使用项目日历,从一年的第一个星期六开始使用4周的周期。

如何在没有任何额外库的情况下使用JavaScript确定给定日期的周期和周期?

1 个答案:

答案 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];
}