weekPeriod()

in src/app/personal-time-tracking-widget.js [51:75]


  weekPeriod(startWeek, numberOfWeeks) {
    function atMidnight(date) {
      date.setHours(0, 0, 0, 0);
    }

    const startDay = new Date();
    startDay.setDate(startDay.getDate() - 7 * startWeek);
    atMidnight(startDay);

    const someWeeksAgo = new Date();
    someWeeksAgo.setDate(someWeeksAgo.getDate() - (7 * numberOfWeeks));
    atMidnight(someWeeksAgo);

    const period = [];

    let i = new Date(someWeeksAgo.getTime());
    while (i.getTime() < startDay.getTime()) {
      const clone = new Date(i.getTime());
      clone.setDate(i.getDate() + 1);
      period.push(clone);
      i = clone;
    }

    return period;
  }