Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 26.12.2013, 00:30   #1
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию Календарь

Написал календарь работает нормально но когда выпадает первое число в понедельник дает сбой таблицы подскажите что надо исправить????

Вот код .
Код HTML:
<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
<script>
    var may_Month = ["Январь", "Февраль", "Март", " Апрель", " Май", " Июнь", " Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"];
    var may_Week = [1, 2, 3, 4, 5, 6, 7];
    var d = new Date(2012,9);
    a = 0;
    c = d.getFullYear();
    b = may_Month[d.getMonth()];
    document.write('<table width="500px" height="250" border="1" bgcolor="gold"><tr><th colspan="7">'+b+'</t> '+c+'</th></tr>');   
   var delta = may_Week[d.getDay()-2 ];
    document.write('<tr><th>Пн</th><th>Вт</th><th>Ср</th><th>Чт</th><th>Пт</th><th>Сб</th><th>Вс</th></tr><tr>');
    if(delta>1)
        document.write('<td align="center" bgcolor="silver" colspan="' + delta + '">&nbsp;</td>');
   
    if (b == "Февраль") {
        if (c % 4 == 0)
            a = 30;
        else
            a = 29;
    }
    else
        if ((b == " Апрель") || (b == " Июнь") || (b == "Сентябрь") || (b == "Ноябрь"))
            a = 31;
        else
            if ((b == "январь") || (b == "Март") || (b == " Май") || (b == " Июль") || (b == "Август") || (b == "Октябрь") || (b == "Декабрь"))
                a = 32;  
    document.write(may_Week[d.getDay()]);
    for (i = 1; i < a; i++)
            if ((i + delta + 1) % 7 == 0)
                document.write('<td align="center" bgcolor="red">' + i + '</td>');
            else
                if ((i + delta) % 7 == 0)
                    document.write('<td align="center" bgcolor="red">' + i + '</td></tr><tr>');
                else
                    document.write('<td align="center" bgcolor="silver">' + i + '</td>');
    
        document.write('</tr></table>');
    
</script>

</body>
</html>
Заранее благодарен
mixon-21 вне форума Ответить с цитированием
Старый 26.12.2013, 19:35   #2
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию

Календарик я исправил получлось даже ни-че так только как мне сделать так чтоб в календаре отображался текущий день??????


Код:
<script>
    var may_Month = ["Январь", "Февраль", "Март", " Апрель", " Май", " Июнь", " Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"];
    var may_Week = [0, 1, 2, 3, 4, 5, 6];
    var d = new Date(2013,11,1);  
    a = 0;
    c = d.getFullYear();  
    b = may_Month[d.getMonth()];
    document.write('<table width="500px" height="250" border="1" bgcolor="gold"><tr><th colspan="7">'+b+' '+c+'</th></tr>'); 
    var delta = (d.getDay() + 6) % 7;
    document.write('<tr><th>Пн</th><th>Вт</th><th>Ср</th><th>Чт</th><th>Пт</th><th>Сб</th><th>Вс</th></tr><tr>');
    if(delta>0)
    if (delta == 1)
        document.write('<td align="center" bgcolor="silver">&nbsp;</td>');
    else         
        document.write('<td align="center" bgcolor="silver" colspan="' + delta + '">&nbsp;</td>');
    if (b == "Февраль") {
        if (((c % 4 == 0) && (c % 100 != 0)) || (c % 400 == 0))
            a = 30;
        else
            a = 29;
    }
    else
        if ((b == " Апрель") || (b == " Июнь") || (b == "Сентябрь") || (b == "Ноябрь"))
            a = 31;
        else
            if ((b == "январь") || (b == "Март") || (b == " Май") || (b == " Июль") || (b == "Август") || (b == "Октябрь") || (b == "Декабрь"))
                a = 32;
    for (i = 1; i < a; i++)
            if ((i + delta + 1) % 7 == 0)
                document.write('<td align="center" bgcolor="red">' + i + '</td>');
            else
                if ((i + delta) % 7 == 0)
                    document.write('<td align="center" bgcolor="red">' + i + '</td></tr><tr>');
                else
                    document.write('<td align="center" bgcolor="silver">' + i + '</td>');
        document.write('</tr></table>');   
</script>
подскажите пожалуста!!!!
mixon-21 вне форума Ответить с цитированием
Старый 27.12.2013, 06:43   #3
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

new Date() - выдаст текущую дату
Потом надо методами получить год, месяц и сравнивать значения с данными в переменной d. При совпадении выставить флаг, указывающий что надо в цикле подсветить совпавший день.
^-.-^ Клавогонки.ру - набирай скорость!
Fenex вне форума Ответить с цитированием
Старый 29.12.2013, 23:12   #4
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию

есть календарь . если текущий день выпадает на
воскресенье то <tr> продолжается до следующего воскресенья ,
а если текущий день попадает на средину недели то все нормально
подскажите пожалуста что не так написал???

Код:
<script>
                          var daycount = 32;
                          var _presentday = new Date();
                          Days = new Date(_presentday.getFullYear(), _presentday.getMonth(), _presentday.getDate());
                          function isHolidey(checkdate) {
                              for (var i = 0; i < daycount; i++)
                                  if (checkdate - Days == 0)
                                      return true;
                              return false;
                          }
                          function getMonthName(_monthnumber) {
                              if (isNaN(_monthnumber) || (_monthnumber < 0) || (_monthnumber > 11))
                                  return "Error!!!";
                              var weekdays = new Array("Январь", "Февраль", "Март", " Апрель", " Май", " Июнь",
                                  " Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь");
                              return weekdays[_monthnumber];
                          }
                          function is29Days(_year) {
                              if (((_year % 4 == 0) && (_year % 100 != 0)) || (_year % 400 == 0))
                              return true;
                              return false;
                          }
                          function FebraryDayNumber(_year) {
                              if (is29Days(_year))
                                  return 30;
                              return 29;
                          }
                          function getDayCount(_monthnumber, _year) {
                              if (_monthnumber == 1)
                                  return FebraryDayNumber(_year);
                              else
                                  if ((_monthnumber % 2 == 0 && _monthnumber < 6) || (_monthnumber % 2 != 0 && _monthnumber > 6))
                                      return 32;
                              return 31;
                          }
                          var date = new Date();
                          var startdate = new Date(date.getFullYear(), date.getMonth(), 1);
                          delta = (startdate.getDay() + 6) % 7;
                          document.write('<table width="100%" bgcolor="green" border="1px"><tr><th colspan="7">' + getMonthName(date.getMonth()) + '&nbsp;&nbsp' + date.getFullYear() + '</th></tr>');
                          document.write('<tr bgcolor="gold"><th>Пн</th><th>Вт</th><th>Ср</th><th>Чт</th><th>Пт</th><th>Сб</th><th>Вс</th></tr><tr>');
                          if (delta > 0)
                              if (delta == 1)
                                  document.write('<th></th>');
                              else
                                  document.write('<th  colspan="' + delta + '"></th>');
                          var horst;
                          var monthdaynumber = getDayCount(date.getMonth(), date.getFullYear());
                          for (i = 1; i < monthdaynumber ; i++) {
                              if ((isHolidey(new Date(startdate.getFullYear(), startdate.getMonth(), i))))
                                  document.write('<th style="border:5px; border-color:gold; border-style:double" >' + i + '</th>');
                              else

                                  if ((i + delta + 1) % 7 == 0)
                                      document.write('<th bgcolor="' + (date.getDate() == i ? 'silver' : 'red') + '">' + i + '</th>');
                                  else
                                      if ((i + delta) % 7 == 0)
                                          document.write('<th bgcolor="' + (date.getDate() == i ? 'silver' : 'red') + '">' + i + '</th></tr><tr>');
                                      else
                                          document.write('<th align="center" bgcolor="silver">' + i + '</th>');
                          }

                          document.write('</tr></table>');
</script>

Последний раз редактировалось mixon-21; 30.12.2013 в 14:32.
mixon-21 вне форума Ответить с цитированием
Старый 30.12.2013, 14:34   #5
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию

Декабрь 2013
Пн Вт Ср Чт Пт Сб Вс
---------------------1
2---3--4--5--6--7--8
9-10-11-12-13-14-15 -16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

вот так получается

Последний раз редактировалось mixon-21; 30.12.2013 в 14:39.
mixon-21 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БД и календарь Человек_Борща БД в Delphi 29 19.08.2013 20:53
Календарь kilogram PHP 0 02.06.2012 01:18
Календарь sid1868 Помощь студентам 1 04.05.2011 19:16
Календарь 19920808 Общие вопросы Delphi 9 08.06.2010 22:17
Календарь ruavia3 Microsoft Office Excel 6 16.04.2009 15:32