Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Вт,14 combobox (http://www.flasher.ru/forum/showthread.php?t=209121)

razve 14.10.2014 10:22

Вт,14 combobox
 
Собственно вопрос в названии темы: как вывести в combobox дни месяца с указанием соответствующих дней недели? Некоторых успехов добился :)
Код AS1/AS2:

var month:Number = 31;
var myDate:Date = new Date();
var d:Array = new Array("Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб");
var thisDay:Number = new Date().getDay();
var dayNumber:Number = myDate.getDate();
var firstDay:Number = (7-(dayNumber-(1+thisDay)))+7;
//номер в массиве первого дня месяца
//3, Ср
for (i=0; i<month; i++) {
        dayComboBox.addItem({data:i, label:d[thisDay]+", "+(i+1)});
        dayComboBox.selectedIndex = myDate.getDate()-1;
}

Также нашел номера текущего дня недели в массиве в течении всего месяца, но это мне ничего не дало.
Код AS1/AS2:

while (allnumDayMonth<month-6) {
        allnumDayMonth = thisDay+n;
        n += 7;
        //2,9,16,23,30
}


dark256 15.10.2014 11:06

Так в чем проблема? В комбобокс что-то не выводится?
Или день некорректно определяется?

razve 16.10.2014 09:35

Сейчас при таком цикле
Код AS1/AS2:

for (i=0; i<month; i++) {
        dayComboBox.addItem({data:i, label:d[thisDay]+", "+(i+1)});
        dayComboBox.selectedIndex = myDate.getDate()-1;
}

выводятся все числа месяца, но при каждом числе стоит "Чт".
Сделать так, как необходимо, у меня получается только для нескольких первых чисел:
Код AS1/AS2:

for (i=0; i<=6; i++) {
        var tek:Number = firstDay+i;
        if (tek<=6) {
                dayComboBox.addItem({data:i, label:d[tek]+", "+(i+1)});
        } else {
                dayComboBox.addItem({data:i, label:d[tek-7]+", "+(i+1)});
        }
          //Ср 1, Чт 2, Пт 3, Сб 4, Вс 5, Пн 6, Вт 7
}

Если меняю условие в цикле
Код AS1/AS2:

for (i=0; i<month; i++) {

то выводится до одиннадцотого числа, а дальше undefined 12, undefined 13 и т.д.

razve 04.11.2014 10:21

Решил)
Код AS1/AS2:

var d:Array = new Array("Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб");
var myDate:Date = new Date();
var multiply:Number = 1000*60*60*24;
for (i=1; i<=30; i++) {
        var dayNumber:Number = myDate.getDate();
        myDate.setTime(myDate.getTime()-(dayNumber-i)*multiply);
        var thisDay:Number = myDate.getDay();
        t.text += d[thisDay]+" "+i+"\n";
}

А вот как "вручную" откатить по массиву от текущего числа до первого не сообразил.


Часовой пояс GMT +4, время: 17:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.