Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2020, 14:46   #1
Мария19043
Пользователь
 
Регистрация: 03.12.2018
Сообщений: 83
По умолчанию календарь с подсветкой текущей даты

не могу понять почему не подсвечивается текущая дата, помогите
JAVASCRIPT
Код:
<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8" />

</head>
<body>
<script type="text/javascript">
function calendar() {
	var d = new Date();
	var year = d.getFullYear();
	var month = d.getUTCMonth();
	var today = d.getDate();
	var first_day = new Date(year,month,1);
	var first_wday = first_day.getDay();
	var oneHour = 1000 * 60 * 60; // милисекунды * минуты * часы
	var oneDay = oneHour * 24; // сутки
	var nextMonth = new Date(year, month + 1, 1);
	var last_date = Math.ceil((nextMonth.getTime() - first_day.getTime() - oneHour)/oneDay);
	var n = new Array ("Январь","Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь");
	var body = document.getElementsByTagName("body")[0];
	var day_table = document.createElement("table");
	day_table.id = "Calendar";
	day_table.style.borderStyle = "dotted";
	day_table.style.fontFamily = "sans-serif";
	day_table.bgColor = "antiquewhite";
	body.appendChild(day_table);
  
	day_table.innerHTML = "<tr><td colspan=7 rowspan=1 id='month'>"+n[month]+"</td></tr>"+"<tr id='weekday'><td>пн</td><td>вт</td><td>ср</td><td>чт</td><td>пт</td><td>сб</td><td>вс</td></tr>"+"<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>"+"<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>"+"<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>"+"<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>"+"<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>";
  
	for (i=1;i < last_date;i++) {
		var td_d = document.getElementsByTagName("td");
		if (i == first_wday) {
			td_d[0].innerHTML = n[month];
			td_d[0].bgColor = "ffcccc";
			td_d[0].align = "center";
			td_d[0].style.fontFamily = "arial black";
			td_d[7+i].innerHTML=1;
          			  
			for (j=0;j<last_date;j++)
				td_d[7+i+j].innerHTML = 1+j;
        
			for (c=8;c<43;c++)
				if (td_d[c].innerHTML==0) {
					td_d[c].visibility = "hidden";// не показывать ячейку, если она пустая
				} else td_d[c].bgColor = "white";// непустые ячейки окрасить белым цветом
                        
			for (z=0;z<last_date;z++)
				if (td_d[z].innerHTML == today) {
					td_d[z].bgColor = "salmon";
				}
		}
	}
}
calendar();
</script>

</body>
</html>

Последний раз редактировалось Мария19043; 23.04.2020 в 14:57.
Мария19043 вне форума Ответить с цитированием
Старый 23.04.2020, 17:04   #2
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

В вашем коде разбираться лень.
Вот хороший пример постройки календаря: Challenge of building a Calendar with Pure JavaScript
Вложения
Тип файла: 7z Calendar.7z (57.8 Кб, 4 просмотров)
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 24.04.2020, 11:57   #3
knight
Дон Кихот
Форумчанин
 
Аватар для knight
 
Регистрация: 17.01.2008
Сообщений: 130
По умолчанию

вынеси и замени блок за пределы цикла for (i=1;i < last_date;i++) {} ниже
Код:
		for (z=0;z<43;z++) {
			if (parseInt(td_d[z].innerHTML) == today) {
				td_d[z].style.background = "salmon";
			}
		}
knight вне форума Ответить с цитированием
Старый 25.04.2020, 12:59   #4
Мария19043
Пользователь
 
Регистрация: 03.12.2018
Сообщений: 83
По умолчанию

knight, благодарю! все работает!
Мария19043 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установка текущей даты Айрат 163 Microsoft Office Excel 10 31.05.2016 16:44
Проверка даты рождения относительно текущей. siteograf PHP 3 16.07.2010 03:45
Горячая клавиша для текущей даты sergantikus Microsoft Office Excel 4 30.06.2010 13:57
присвоение переменной текущей даты KaimNotark Помощь студентам 1 29.01.2010 08:17
Вставка текущей даты в БД! Oleg Romanchuk БД в Delphi 5 21.08.2007 19:59