Как проверить / рассчитать количество дней недели (используя функции даты), используя Javascript? - PullRequest
1 голос
/ 08 января 2010

Я хотел бы проверить, является ли данная дата первым, вторым, третьим, четвертым или последним понедельником, вторником, средой, ..., воскресеньем в датах месяца.

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

if(checkdate(date, "second", "monday"))
{
   alert("This is the second monday of the month");
}
else
{
   alert("This is NOT the second monday of the month");
}

Ответы [ 3 ]

6 голосов
/ 08 января 2010

Я бы лучше написал функцию, которая возвращает объект, сообщающий мне день и номер недели в месяце заданной даты. Что-то вроде:

function infoDate(date) {
 return {
  day: date.getDay()+1,
  week: (date.getDate()-1)%7+1
 }
}

Тогда я могу прочитать возвращенный объект и выяснить, второй ли это понедельник или еще что-то:

var info = infoDate(date);
if(info.day==1 && info.week==2) {
  // second monday
}

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

1 голос
/ 08 января 2010

Мне кажется, вам нужно всего лишь разделить дату на 7, чтобы узнать, сколько прошло полных недель, независимо от того, какой сегодня день. Вычитая единицу перед делением и добавляя ее после, задает первую неделю от 0 до единицы.

Date.prototype.weekofMonth= function(){
 return Math.floor((this.getDate()-1)/7)+1;
}
alert(new Date().weekofMonth())
1 голос
/ 08 января 2010

используйте getDate (), чтобы получить день месяца

, затем getDay (), чтобы получить день недели

, используя эти два значения, и вы сможете выполнить свою задачу.Обратитесь к этому http://www.w3schools.com/jsref/jsref_obj_date.asp

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