2012-05-03 2 views
0

Я ищу простой способ рассчитать календарные дни, когда вам дали номер недели и года, используя jquery/javascript.jquery/javascript- рассчитать дни на этой неделе, указанную неделю номер и год номер

Пример: Неделя 18, 2012 год приведет к списку, начиная с воскресенья

2012-04-29 
2012-04-30 
2012-05-01 
2012-05-02 
2012-05-03 
2012-05-04 
2012-05-05 

благодаря

+0

Если 1 января выпадает на среду, когда делал/делает неделю # 1 начать? – Marc

+0

С помощью JS вы можете получить день недели, используя 'theDate.getDay();' Вы могли бы рассчитать оттуда. – Marc

+0

Необходимо указать, какая из них является первой неделей года. Первая неделя, какой бы день ни был включен в йерар? Первая неделя, которая включает в себя понедельник? Первая неделя, которая включает в себя четверг? – JotaBe

ответ

3

Если переделать код с this question вы получите что-то вроде этого:

function getDays(year, week) { 
    var j10 = new Date(year, 0, 10, 12, 0, 0), 
     j4 = new Date(year, 0, 4, 12, 0, 0), 
     mon = j4.getTime() - j10.getDay() * 86400000, 
     result = []; 

    for (var i = -1; i < 6; i++) { 
     result.push(new Date(mon + ((week - 1) * 7 + i) * 86400000)); 
    } 

    return result; 
} 

DEMO:http://jsfiddle.net/TtmPt/

+0

Если вы используете номер недели в европейском стиле http://jsfiddle.net/mayooresan/MGvsd/ –

1

Не видя, что вы получили до сих пор, я рекомендую прочитать эту демонстрацию, и затем рассмотрите обратное проектирование эффекта, чтобы вместо того, чтобы принимать дату, он принимает номер недели.

ISO Week Numbers in Specific Languages

1

Вы должны решить, какой день начинается через неделю - вы указанное воскресенье. (Неделя ISO начинается в понедельник).

  1. Получите день недели 1 января.
  2. Получите дату ближайшее воскресенье.
  3. Если 1 января находится в четверг, пятницу, субботу или воскресенье, первая неделя года начинается неделю с последнего воскресенья декабря. В противном случае первая неделя года начинается в последнее воскресенье декабря.
  4. Найдите первый день любой недели года, установив дату на день первый день + (недели * 7) - 7.

    вар год = новая дата() getFullYear(), FirstDay = новая дата (год, 0, 1), = firstDay.getDay WD().

    firstDay.setDate (1 + (- 1 * (wd% 7)));

    если (wd> 3) { firstDay.setDate (firstDay.getDate() + 7); } var week4 = новая дата (firstDay); неделя4.setDate (неделя4.getDate() + (4 * 7) - 7);

    предупреждение (неделя4);

    Возвращаемое значение: (Дата)

    Вс 20 января 2013 00: 00: 00 GMT-0500 (Eastern Standard Time)

0

JQuery/javascript- рассчитать дни на этой неделе дали номер недели и номер года

var years = $('#yr').val(); 
var weeks = $('#weekNo').val(); 

    var d = new Date(years, 0, 1); 
     var dayNum = d.getDay(); 
     var diff = --weeks * 7; 


     if (!dayNum || dayNum > 4) { 
      diff += 7; 
     } 


     d.setDate(d.getDate() - d.getDay() + ++diff); 
$('#result').val(d); 

[Demo] [1]: https://jsfiddle.net/2bhLw084/

Смежные вопросы