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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2012, 22:25   #1
maxim456
Новичок
Джуниор
 
Регистрация: 21.03.2012
Сообщений: 2
По умолчанию Какой по счёту день от начала года(не работает скрипт)

Не открывает скрипт,даже ни одна функция не работает,хотя синтаксис вроде правильный.
Задание состоит таким образом
Создайте Web-страницу, в которой по введенным с помощью окна параметрам: prompt номеру дня в месяце, наименованию месяца и типу года (високосный или не високосный) подсчитывается и выдается (с помощью окна alert) номер дня в году. Указание: количество дней до начала данного месяца (невисокосный год): январь – 0, февраль – 31, март – 59, апрель – 90, май – 120, июнь – 151, июль – 181, август – 212, сентябрь – 243, октябрь – 273, ноябрь – 314, декабрь – 334. В високосном году, начиная с марта, к количеству дней добавляется 1.
помогите пожалуйста разобратся,в чём проблема.
Код HTML:
<html>
<head>
<script type="text/javascript">

var a=new Array;
a[0]=0;
a[1] = 0;
a[2] = 31;
a[3] = 59;
a[4] = 90;
a[5] = 120;
a[6] =151;
a[7] = 181;
a[8] = 212;
a[9] = 243;
a[10] = 273;
a[11] = 314;
a[12] = 334;
  var i

var day=prompt('введите день','');
var month=prompt('введите месяц','');
var typee=prompt('введите тип года','');
if(typee==0)//если невыскокосный год
{	
	for(i=1;i=<12;i++)
		{ 
			if (i==month)
			day=day+a[i]
		}
}
if(typee!=0)
	{
	for(i=1;i<=12;i++)
		{
		if((month<3)||(month==i))
		day=day+a[i];
		if((month>=3)||(month==i))
		day=day+a[i]+1
		}
	}


alert('сейчас столько дней от начала года',+day);
</script>
</head>
<body>  
      
</body>
</html>
maxim456 вне форума Ответить с цитированием
Старый 22.03.2012, 02:48   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

У Вас была синтаксическая ошибка - вместо <= написали =<. И кроме того, логическая для определения дня в високосном году. Плюс если не привести day к численному типу, то происходит не сложение, а склеивание строк
Вот рабочий код
Код:
<html>
<head>
<script type="text/javascript">

var a=new Array;
a[0]=0;
a[1] = 0;
a[2] = 31;
a[3] = 59;
a[4] = 90;
a[5] = 120;
a[6] =151;
a[7] = 181;
a[8] = 212;
a[9] = 243;
a[10] = 273;
a[11] = 314;
a[12] = 334;
  var i

var day=parseInt(prompt('введите день',0));
var month=prompt('введите месяц','');
var typee=prompt('введите тип года','');
if(typee==0)//если невыскокосный год
{	
	for(i=1;i<=12;i++)
		{ 
			if (i==month)
			day=day+a[i]
		}
}
if(typee!=0)
	{
	for(i=1;i<=12;i++)
		{
		if((month<3)&&(month==i))
		day=day+a[i];
		if((month>=3)&&(month==i))
		day=day+a[i]+1
		}
	}



alert('сейчас столько дней от начала года '+day);
</script>
</head>
<body>  
      
</body>
</html>
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 22.03.2012, 09:34   #3
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

я бы так сделал:
Код:
(function(){
  var q=['Введите год','Введите день','Введите месяц'];
  var t=[];
  for (var i = q.length;i--;) {
     t.push(prompt(q[i],''));
  }
  var d=new Date(t.join(' '));
  var s=new Date('01 01 '+t[2]);
  var dc=(Math.round((d.getTime()-s.getTime())/(24*60*60*1000))+1)
  alert('с начала года прошло '+dc+' дней');
})()
в вашем коде в цикле идет наращивание, кстати, по массиву в котором уже учтено наращивание.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 22.03.2012, 09:44   #4
maxim456
Новичок
Джуниор
 
Регистрация: 21.03.2012
Сообщений: 2
По умолчанию

Большое спасибо за помощь,разобрался.)
maxim456 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны числа A,B,C обозначающие дату.Найти номер этого дня от начала года. naty7773 Помощь студентам 5 13.01.2012 13:35
Каким будет k-й день года солнышко777 Паскаль, Turbo Pascal, PascalABC.NET 6 06.10.2010 21:55
Опредилить, каким днем недели является k-й день невисокосного года RAVEN23 Паскаль, Turbo Pascal, PascalABC.NET 0 03.06.2009 18:45