Получить все годовые даты для определенного дня

Существует ли алгоритм [или код javascript], который получает все даты для определенного дня в году, если мы указали начальную дату?

Например:

Ввод: вторник , 11 декабря 2012 г.

Вывод: 18 декабря 2012 г., 25 декабря 2012 г., 1 января 2013 г. и т. д.


person Sana Joseph    schedule 11.12.2012    source источник
comment
Хорошим местом для начала было бы ‹тип сценария.... Как насчет того, чтобы добавить цикл для i = 0 до 364, увеличивая дату, которая добавляется к строке. Как только у вас будет код, разместите его здесь   -  person DavidB    schedule 11.12.2012
comment
Я не понимаю, почему там 1 февраля 2012 года ... Вы имеете в виду 1 января 2013 года?   -  person elclanrs    schedule 11.12.2012
comment
Надеюсь, что этот URL-адрес будет вам полезен stackoverflow.com/questions/2045736/   -  person anuj arora    schedule 11.12.2012
comment
@elclanrs Да, я имел в виду январь 2013 года, извините.   -  person Sana Joseph    schedule 11.12.2012
comment
@DavidBattersby Хорошо, попробую. Спасибо.   -  person Sana Joseph    schedule 11.12.2012
comment
@anujarora Спасибо, попробую понять :)   -  person Sana Joseph    schedule 11.12.2012


Ответы (2)


Как трудно это может быть?

var d1 = new Date('Tuesday , Dec, 11 2012');

for (var i = 0; i < 365; i += 7) {
    d1.setDate(d1.getDate() + 7)
    console.log(d1);  //outputs every tuesday for the next year
}

FIDDLE

person adeneo    schedule 11.12.2012
comment
ВАУ, мне нравится твой ответ .. Большое спасибо! - person Sana Joseph; 11.12.2012

Очень похоже на ответ аденео. Опереди меня, но я все равно поделюсь. =р

var getDaysInYear = function(day, year) {
    var startDate = new Date(day + " " + year);
    var date = startDate;
    var dates = [];

    while (date.getFullYear() == year) {
        dates.push(date.toDateString()); // change this to change the output
        date.setTime(date.getTime() + 1000 * 7 * 24 * 60 * 60);
    }

    return dates;
};

// Returns an array of whatever is in dates.push().
var dates = getDaysInYear("Tuesday", 2013);
console.log(dates);

СКРИПКА

person samanime    schedule 11.12.2012