Получить дату для каждого четверга в году Javascript - PullRequest
2 голосов
/ 09 февраля 2011

Учитывая день недели ( var day ), код ниже будет печатать дату каждого день в году, начиная с сегодняшнего дня. Так как 4 = четверг, я получу список всех четвергов, оставшихся в году. Мне было просто любопытно, было ли «аккуратнее» способ сделать это?

var day = 4;
var date = new Date();
var nextYear = date.getFullYear() + 1;

while(date.getDay() != day)
{
    date.setDate(date.getDate() + 1)    
}

while(date.getFullYear() < nextYear)
{
    var yyyy = date.getFullYear();

    var mm = (date.getMonth() + 1);
    mm = (mm < 10) ? '0' + mm : mm;

    var dd = date.getDate();
    dd = (dd < 10) ? '0' + dd : dd;

    console.log(yyyy + '-' + mm + '-' + dd)

    date.setDate(date.getDate() + 7);
}

Выход:

2011-02-10

2011-02-17

2011-02-24

2011-03-03

2011-03-10

.. и т.д.

1 Ответ

5 голосов
/ 09 февраля 2011

Ну, вы бы выглядели намного красивее, если бы вы использовали Datejs .

var thursday = Date.today().next().thursday(),
    nextYear = Date.next().january().set({day: 1}),
    format = 'yyyy-MM-dd';

while (thursday.isBefore(nextYear))
{
    console.log(thursday.toString(format));
    thursday = thursday.add(7).days();
}

См. Также http://code.google.com/p/datejs/.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...