Как метод getDay в JavaScript определяет день?

Askar
Askar
1.6K
5
Всем привет! Имеется следующий код:

var coun = new Date();
var itog1 = coun.getTime() / (1000 * 60 * 60 * 24);
var pik = new Date(2016,0,1,0,0,0);
var itog2 = pik.getTime() / (1000 * 60 * 60 * 24);
document.write("До нового года осталось:  " Math.round(itog1) - Math.round(itog2) + " ");
var myDays = ["Воскресения", "Понидельник","Вторник", "Среда", "Четверк", "Пятьница", "Субота"];
document.write(myDays[pik.getDay()]); // здесь getDay() как будет работать  
Как метод getDay() в последней строчке узнает, какой будет день?

Комментарии: 5

  1. Александр Мальцев
    Александр Мальцев
    24.11.2015, 16:18
    Во первых у Вас ошибка в строчке document.write, надо разницу заключить в скобки…
    document.write("До нового года осталось:  " + (Math.round(itog2)- Math.round(itog1)) + " ");
    
    Переменная myDays у Вас является массивом. Чтобы она вернула значение некоторого элемента, Вы ей должны передать в квадратных скобках его порядковый номер. Порядковым номером у Вас является день недели, который Вы получаете у даты, хранящейся в переменной pik с помощью метода getDay(). Данный метод возвращает число 0 — 6 (0 — Воскресенье, 1 — Понедельник и т.д.). Подставляя данное число (порядковый номер элемента) в квадратные скобки, получаете его значение (строку).
    1. Askar
      Askar
      24.11.2015, 16:55
      Порядковым номером у Вас является день недели, который Вы получаете у даты, хранящейся в переменной pik с помощью метода getDay(). Этого не понял, можете подробнее объяснить.
    2. Askar
      Askar
      24.11.2015, 17:12
      какой связь есть между gatDay и getDate
    3. Александр Мальцев
      Александр Мальцев
      25.11.2015, 12:15
      Массив — это такая структура, которая может хранить в себе множество различных значений. Доступ к этим значениям осуществляется с помощью индекса, т.е. порядкового номера.
      Переменная myDays — это массив, она содержит множество значений. Первое значение этой переменной («Понедельник») можно получить если указать ей индекс 0, второе значение («Вторник») — если указать ей индекс 1 и т.д.
      myDays[0]; //Понедельник
      myDays[1]; //Вторник
      ...
      
      Теперь пошли дальше…
      pik.getTime() — возвращает Вам число, которая указывает день недели (0 — Понедельник и т.д.)

      Т.е. получается:
      myDays[pik.getDay()]; 
      //1. pik.getDay() - возвращает число, например 0
      //2. myDays[0] - получаете Воскресенье
      
    4. Александр Мальцев
      Александр Мальцев
      25.11.2015, 12:15
      Нет никакой связи, два разных метода