JavaScript; Количество отмеченный дней недели между двумя датами

Discussion in 'PHP' started by freenick, 15 Jan 2016.

  1. freenick

    freenick New Member

    Joined:
    15 Jan 2016
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Делаю курсач и в одном моменте попал в тупик. не знаю с какой стороны подойти и как сделать.
    есть 7 чекбоксов с днями неделями. юзер отмечает нужные.
    есть накопительная sum.
    а также две даты: сегодня и когда-то.
    нужно посчитать, сколько раз отмеченные дни недели встречаются между этими датами. т.е. отметил, например, вт, ср и сб, запустил функцию и она в sum накапливает, сколько раз эти дни встретились на промежутке между двумя датами.

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

    HTML:
    <input type="checkbox" id="dOW" name="mon" value="1">ПН<br>
    <input type="checkbox" id="dOW" name="tue" value="2">ВТ<br>
    <input type="checkbox" id="dOW" name="wed" value="3">СР<br>
    <input type="checkbox" id="dOW" name="thu" value="4">ЧТ<br>
    <input type="checkbox" id="dOW" name="fri" value="5">ПТ<br>
    <input type="checkbox" id="dOW" name="sat" value="6">СБ<br>
    <input type="checkbox" id="dOW" name="sun" value="0">ВС<br>
    <input type="button" name="save" id="save" value="GO" onclick=go()><br>
    <script>
            var today = new Date();
            var futureDay = new Date(2016, 1, 21);
            var oneDay=1000*3600*24;
            var sum=0;
            var test =today;
            var days = (futureDay - today)/oneDay;
            function go(){
                sum=0;
                for (i=0; i<days; i++) {
                    test.setDate(test.getDate()+1);
                    if (test.getDay()==0){
                        sum+=1
                    };
                };
                alert(sum);
            }
    </script> 
    
     
  2. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    берешь свои чекбоксы, нумеруешь их от одного до 6, записываешь в массив чекнутые. затем по таймеру вызываешь метод getDay() объекта Date, и получаешь ним текущий день. в цикле сравниваешь его со значениями в массиве и интрементируешь счетчик.