Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите разобраться с календарем (https://javascript.ru/forum/misc/10126-pomogite-razobratsya-s-kalendarem.html)

FoMurJIom 20.06.2010 16:42

Помогите разобраться с календарем
 
Ладно перефразирую я хочу разместить календарь к себе на сайт как вот здесь
Скирпт есть вот он:
/**************************************************
*   Формирование календаря.
*   Параметры:
*       redWeekN - первая красная неделя в году
*       servDate - текущая дата (с сервера)
*       
**************************************************/
function calendar(redWeekN, servDate)
{
    //текущие:
    var today = new Date();
    var nowDay = today.getDay();    //день недели
    var nowDate = today.getDate();  //день месяца;
    var nowMonth = today.getMonth();  //месяц
    var nowYear = today.getFullYear();  //год
    var dayCount = 1; //количество дней в месяце
    var nowMonthText;  //текстовый вариант месяца
    var maxDayCount = 30;
    switch (nowMonth)
    {
        case 0: case 2: case 4: case 6: case 7: case 9: case 11: maxDayCount = 31; break;
        case 1: maxDayCount = (isLeapYear(nowYear) ? 29 : 28); break;
    }; 
    num = 0;
    week = new Array(6 * 7);
    //1. Первая неделя
    for(i = 0; i<7; i++) 
    {
        //вычисляем номер дня недели для числа
        var someday = new Date(nowYear, nowMonth, dayCount);
        var dayofweek = someday.getDay();
        //сдвигаем начало американской недели на понедельник
        dayofweek = dayofweek - 1;
        if(dayofweek == -1) dayofweek = 6;
        if(dayofweek == i)
        {
            //если дни недели совпадают, заполняем массив week числами месяца
            week[i + num * 7] = dayCount;
            dayCount++;
        }
        else
        {
            week[i + num * 7] = '';
        }
    };
//2. Последующие недели месяца
    while(true)
    {
        num++;
        for(i = 0; i < 7; i++)
        {
            week[i + num * 7] = dayCount;
            dayCount++;
            //если достигли конца месяца, выходим из цикла
            if(dayCount > maxDayCount) break;
        };
        //если достигли конца месяца, выходим из цикла
        if(dayCount > maxDayCount) break;
    };
    //прописываем русские названия месяца
    switch(nowMonth)
    {
        case 0: nowMonthText = 'январь'; break;
        case 1: nowMonthText = 'февраль'; break;
        case 2: nowMonthText = 'март'; break;
        case 3: nowMonthText = 'апрель'; break;
        case 4: nowMonthText = 'май'; break;
        case 5: nowMonthText = 'июнь'; break;
        case 6: nowMonthText = 'июль'; break;
        case 7: nowMonthText = 'август'; break;
        case 8: nowMonthText = 'сентябрь'; break;
        case 9: nowMonthText = 'октябрь'; break;
        case 10: nowMonthText = 'ноябрь'; break;
        case 11: nowMonthText = 'декабрь'; break;
    };
    //выводим все на экран
    document.getElementById('nowMonthYear').innerHTML = nowMonthText + ' ' + nowYear;
    document.getElementById('calendar').innerHTML = '<TR class="day"><TD>ПН</TD><TD>ВТ</TD><TD>СР</TD><TD>ЧТ</TD><TD>ПТ</TD><TD>СБ</TD><TD>ВС</TD></TR>';   
    allWeeks = '';      
    for (i = 0; i < 6; i++)
    {
        buf = '';
        for(j = 0; j < 7; j++)
        {
            if(week[j + i * 7])
            {
                if(week[j + i * 7] != nowDate)
                {
                    b = '<TD>' + week[j + i * 7] + '</TD>';
                }
                else
                {
                    b = '<TD id="curdate">' + week[j + i * 7] + '</TD>';
                }
            }
            else
            {
                b = '<TD>&nbsp;</TD>';
            };
            buf = buf + b;
        };
        oneWeek = '<TR class="dateBlue">' + buf + '</TR>';
        allWeeks = allWeeks + oneWeek;
    };
    document.getElementById('calendar').innerHTML += allWeeks;
}
/**************************************************
*   Определение високосности года.
*   Параметры:
*       y - год
*       
**************************************************/
function isLeapYear(y)
{
    return(y % 4 == 0 && (y % 100 != 0 || y % 400 == 0));
}


так же есть css файл со стилем к этому календарю
.calendar {
    text-align: left;
    border-left: 0px solid #9DA2A6;
    margin: 0px 0px 5px 0px;
    font-size: 10pt;
}

.calendar td {
    padding: 1px 3px;
    margin: 0px;
}

tr.day {
    border-left: 1px solid #9DA2A6;
}

tr.day td {
    text-align: center;
    border: 1px solid #9DA2A6;
    color: #000000;
    background: #EDEEF0;
}

.dateRed {
    COLOR: #AF0000; 
}

.dateRed TD {
    border-width: 0px 1px 1px 0px;
    border-color: #EDEEF0;
    border-style: solid;
    text-align: center;
}

.dateBlue {
    COLOR: #3D6883;
}

.dateBlue TD {
    border-width: 0px 1px 1px 0px;
    border-color: #EDEEF0;
    border-style: solid;
    text-align: center;
}

.date  TD {
    border-width: 0px 1px 1px 0px;
    border-color: #EDEEF0;
    border-style: solid;
}

td.exc {
    border: 1px solid #EDEEF0;
    border-top: none;
    text-align: left;
}

#curdate {
    color: #ffffff;
    background: #9DA2A6;


Очень нужна помощь знающего человека!!! Как сделать так что бы был такой же календарь тут весь код который нужен или чего то не хватает подскажите пожалуйста!!!

FoMurJIom 21.06.2010 16:56

Я под разобрался немного получилось вывести календарь но что то он у меня совсем не похож на то что надо =)


Часовой пояс GMT +3, время: 23:01.