Сколько недель в году - PullRequest
       11

Сколько недель в году

0 голосов
/ 21 января 2019

Учитывая определенный год, как я могу вычислить, в javascript / JQuery, сколько недель в данном году? 52 или 53?

Я посмотрел много ответов, но ни один не помог мне Мне нужно рассчитать первый день года как первую неделю (как показано в календаре Outlook). В расчетах, которые я видел, первая неделя начинается с первого воскресенья в году.

outlook calendar - 12/2016

1 Ответ

0 голосов
/ 21 января 2019

Если вы ищете искомый номер недели ISO 8601 , вы можете сделать это, проверив, какой номер недели декабря 28 имеет эту дату, всегда впоследняя неделя года, например января 4 , равна всегда в первую неделю:

    Date.prototype.getWeek = function() {
      var date = new Date(this.getTime());
      date.setHours(0, 0, 0, 0);
      // Thursday in current week decides the year.
      date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7);
      // January 4 is always in week 1.
      var week1 = new Date(date.getFullYear(), 0, 4);
      // Adjust to Thursday in week 1 and count number of weeks from date to week1.
      return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);
    }

    
    console.log((new Date(2019, 11, 28)).getWeek());  // 52
    console.log((new Date(2020, 11, 28)).getWeek());  // 53
    console.log((new Date(2021, 11, 28)).getWeek());  // 52
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...