Определить месяц -3 и +3 в JavaScript - PullRequest
1 голос
/ 14 октября 2010

Эй, простой вопрос, мой мозг сегодня пуст ... У меня есть массив с месяцем (1-12) и данным месяцем.

var cMonate = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli",
                            "August", "September", "Oktober", "November", "Dezember");

Мой данный месяц:

var Month = currentMonth.getMonth(); 

Месяц 8. Теперь я прочитаю последние 3 месяца и предстоящий месяц.

Простой пример: май июнь июль август сентябрь октябрь ноябрь

Как я могу узнать?

Ответы [ 3 ]

2 голосов
/ 14 октября 2010
for(var m = Month - 3; m <= Month + 3) {
  var usedMonth = (m < 1 ? m + 12 : (m > 12 ? m - 12 : m));
  // use 'usedMonth' here for whatever...e.g.:
  console.log(cMonate[usedMonth-1]);
}
1 голос
/ 14 октября 2010

Вам известно о datejs ?

0 голосов
/ 14 октября 2010

Рассматривайте ваши месяцы как бесконечную серию, начиная с -infinity и заканчивая -3, -2, -1, 0, 1, 2, ..., 12, 13, 14, ...

Тогда все просто:

for( var infindex = monthindex-3; infindex < month+4; ++infindex ) {
   return month( infindex );
}

Затем вы можете создать отображение из бесконечного индекса в постоянно повторяющуюся последовательность:

function month( infiniteindex ) {
  var index = infinteindex % 12; // since every 12 months, the same month occurs.
  // EDIT --- javascript allows negative result for modulo
  if( index < 0 ) index = index+12;
  return cMonate[index];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...