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

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

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

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

Ответ
 
Опции темы
Старый 30.06.2020, 18:43   #1
mistiklegion
Новичок
Джуниор
 
Регистрация: 30.06.2020
Сообщений: 1
По умолчанию Календарик - изменить программу что бы "год не выбирался из списка, а вводился пользователем"

Здравствуйте, помогите пожалуйста с решением задачки, все нашел, где и что менять, но что то все равно идет не так.
Задача изменить программу что бы "год не выбирался из списка, а вводился пользователем"

Код:
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<TITLE>Календарь</TITLE>
<STYLE TYPE="text/css">
BODY
{
background: 9999FF;
color: 000099;
}
</STYLE>
<SCRIPT language="JavaScript">

function setToday()
{
var now = new Date();
var month = now.getMonth();
var year = now.getYear();
document.Control.month.selectedIndex = month;
document.Control.year.selectedIndex = year - 1900;
formCalendar(month, year);
}

function setPrev()
{
var month = document.Control.month.selectedIndex - 1;
document.Control.month.selectedIndex = month;
var year = document.Control.year.selectedIndex + 1900;
formCalendar(month, year);
}

function setNext()
{
var month = document.Control.month.selectedIndex + 1;
document.Control.month.selectedIndex = month;
var year = document.Control.year.selectedIndex + 1900;
formCalendar(month, year);
}

function selectDate()
{
var year = document.Control.year.selectedIndex + 1900;
var month = document.Control.month.selectedIndex;
formCalendar(month, year);
}

function getDaysInMonth(_month,_year)
{
var days;
var daysInMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
days = daysInMonth[_month];
if (_month==2 && isLeapYear(_year)) days = 29;
return days;
}

function isLeapYear (Year)
{
if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0))
return true;
else return false;
}

function formCalendar(month, year)
{
month = parseInt(month);
year = parseInt(year);
D = new Date(year,month,0);
var temp;
temp = "<TABLE ID='calTab' cellspacing=0 cellpadding=0 border=0 style='font-family: serif;'>";
temp += "<TBODY ID='calBody' align='center'>";
temp += "<TR><TD width=25 height=25>Пн<TD width=25>Вт<TD width=25>Ср<TD width=25>";
temp += "Чт<TD width=25>Пт<TD width=25>Сб<TD width=25>Вс</TR><TR>";
var n = D.getDay();
for (i=0; i<n; i++)
{
temp += "<TD>&nbsp</TD>";
}
var num = getDaysInMonth(month,year);
for (i=1; i<=num; i++)
{
if ((i+n)%7 || !i) temp += "<TD height=20>" + i + "</TD>";
else temp += "<TD>" + i + "</TD></TR><TR>";
}
D = new Date(year,month,num-1);
num = D.getDay();
for (i=num; i<6; i++)
{
temp += "<TD>&nbsp</TD>";
}
temp += "</TR></TBODY></TABLE>";
document.all["calTab"].outerHTML = temp;
}
</SCRIPT>
</HEAD>
<BODY onLoad="setToday()">
<CENTER>
<H2>Календарь</H2>
<FORM name="Control">
<SELECT name="month" onChange="selectDate()">
<OPTION>Январь</OPTION>
<OPTION>Февраль</OPTION>
<OPTION><h2>Март</h2></OPTION>
<OPTION>Апрель</OPTION>
<OPTION>Май</OPTION>
<OPTION>Июнь</OPTION>
<OPTION>Июль</OPTION>
<OPTION>Август</OPTION>
<OPTION>Сентябрь</OPTION>
<OPTION>Октябрь</OPTION>
<OPTION>Ноябрь</OPTION>
<OPTION>Декабрь</OPTION>
</SELECT>
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
<SELECT name="year" onChange="selectDate()">
<SCRIPT language=JavaScript>
for (var i=2000; i< 2501; i++) document.write("<OPTION>"+i+"</OPTION>");
</SCRIPT>
</SELECT>
</FORM>
<FORM name="Calend">
<TABLE ID="calTab" cellspacing=0 cellpadding=0 border=1 style="font-family: serif;">
<TBODY ID="calBody"></TBODY>
</TABLE>
</FORM>
<FORM name="Buttons">
<INPUT type=button name="prev" value=" << " onClick="setPrev()">
<INPUT type=button name="today" value="Сегодня"
onClick="setToday()">
<INPUT type=button name="next" value=" >> " onClick="setNext()">
</FORM>
</CENTER>
</BODY>
</HTML>
mistiklegion вне форума Ответить с цитированием
Старый 30.06.2020, 19:51   #2
BDA
Модератор
Заслуженный модератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 5,657
По умолчанию

Нужно select с именем year заменить на input. Текущая реализация тоже имеет проблемы: вместо взятия значения option берется индекс года (выбрано значение 2000, а в расчетах будет 1900), кнопки prev и next плохо отрабатывают на границе года.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ

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

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу формирования списка из текстового файла, состоящего из строк. Затем требуется удалить из этого списка заданное zenya1998 Паскаль, Turbo Pascal, PascalABC.NET 0 28.04.2016 17:53
Немогу переделать программу что бы массив вводился с руки! GreyF Общие вопросы C/C++ 2 27.11.2012 10:32
Составить программу, которая формирует 2 списка, и написать процедуру присоединения 2го списка к 1му Neitrosha Помощь студентам 7 25.02.2011 21:18
программу, которая вычисляет произведение двух заданных пользователем чисел smile) Помощь студентам 1 15.09.2010 18:19
Как сделать, чтобы по нажатию клавиши вводился не символ, а строка? Сид Общие вопросы Delphi 5 27.12.2009 13:32


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS