Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.04.2012, 14:00
Аватар для Anastasiy17
Интересующийся
Отправить личное сообщение для Anastasiy17 Посмотреть профиль Найти все сообщения от Anastasiy17
 
Регистрация: 01.04.2012
Сообщений: 16

Посчет дней в году
Задачка вот такая:
Создайте Web-страницу, в которой по введенным с помощью окна параметрам: prompt номеру дня в месяце, наименованию месяца и типу года (високосный или не високосный) подсчитывается и выдается (с помощью окна alert) номер дня в году. Указание: количество дней до начала данного месяца (невисокосный год): январь – 0, февраль – 31, март – 59, апрель – 90, май – 120, июнь – 151, июль – 181, август – 212, сентябрь – 243, октябрь – 273, ноябрь – 314, декабрь – 334. В високосном году, начиная с марта, к количеству дней добавляется 1.
Ну в принципе все понятно, задаеш 12 массивов и работаеш с ними, но for i if не работают. Выбивает просто пустое окно(
<html>
<head>
<script>
     <!--
		function Years;
var 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 day=prompt("введите день:");
var month=prompt("введите месяц;");
var typey=prompt("введите тип года");
if(typey==0)//если невыскокосный год
{
for(i=1,i=<12,i++)
{
if (month==i)
{
day=day+a[i]
};
};
else
{
for (i=1;i=<12;i++)
if (month==i||month<=3)
{
day=day+a[i]
}
else //если выскокосный
if (month==i||month>=3)
{
day=day+a[i]+1
}
 }
alert("day)
  // -->
</script>
</head>
<body>
 <script language="JavaScript">
<!--
Years();
// -->
</script>
</body>
</html>

Помогите пожалуйста)
Ответить с цитированием
  #2 (permalink)  
Старый 01.04.2012, 14:28
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

var day = prompt('Номер дня в месяце:'),
	month = ['январь', 'февраль', 'март', 'апрель',
		'май', 'июнь', 'июль', 'август', 'сентябрь',
		'октябрь', 'ноябрь', 'декабрь'].indexOf(prompt('Название месяца:')),
	year = prompt('Год високосный:') == 'да' ? 1972 : 1970;

alert(
	'Номер дня в году: '
		+ (new Date(year, month, day) - new Date(year, 0, 0)) / 864e5
);

Последний раз редактировалось Riim, 08.08.2012 в 06:23.
Ответить с цитированием
  #3 (permalink)  
Старый 01.04.2012, 14:39
Аватар для Anastasiy17
Интересующийся
Отправить личное сообщение для Anastasiy17 Посмотреть профиль Найти все сообщения от Anastasiy17
 
Регистрация: 01.04.2012
Сообщений: 16

Спасибо,Riim!)
А не могли бы розкажать про:
(new Date(leap ? 1972 : 1970, month, day) - new Date(leap ? 1972 : 1970, 0, 0)) / 864e5
8 );

Что именно оно делает?
Ответить с цитированием
  #4 (permalink)  
Старый 01.04.2012, 15:32
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Дата - это число миллисекунд с 1970-1-1. Первая дата с месяцем и днем, вторая с нулями (года одинаковые), разница - число миллисекунд до нужной даты от начала года, делим на число миллисекунд в дне - 864e5, получаем число дней до нужной даты от начала года.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчёт дней до конца акции - помогите разобраться со скриптом Chataine Общие вопросы Javascript 0 24.07.2011 14:48
Получить количество дней при вычитании дат Spinne Events/DOM/Window 18 28.10.2010 13:00
Как рассчитать дату и время по количеству дней и часов skalka Общие вопросы Javascript 4 01.10.2010 09:21
Несколько способов определения количества дней в месяце with-love-from-siberia Общие вопросы Javascript 2 29.04.2010 10:31
Подсчет дней в IE, даты пользователя gotravelman Internet Explorer 6 26.02.2009 16:25