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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 29.02.2016, 09:07   #1
Bulat Ibrahim
Форумчанин
 
Регистрация: 24.04.2015
Адрес: Татарстан, г. Казань
Сообщений: 190
Репутация: 168
По умолчанию Даты в Яваскрипт

Изучаю Яваскрипт по видео-урокам Евгения попова. Но проблема в выполнении одного "домашнего задания":
/*
Домашнее задание к 45-му уроку.

Написать функцию, которая выводит на экран дату, которая наступит через n дней от сегодняшней.
n - количество дней, которое нужно запросить у пользователя при загрузке страницы.
Это значение передаете в функцию в качестве параметра.
При этом итоговую дату надо вывести в нормальном формате на русском языке.
Например так (пример для ввода числа 79):

Через 79 дней будет вот такая дата:
День недели: Воскресенье
Число: 10
Месяц: Октябрь
Год: 2010

При этом пользователь должен ввести число от 1 до 1000.
Если он не попал в интервал или ввел не число, то надо вывести ошибку.
Проверку можно осуществлять за пределами функции.
*/

Написал так:

Код:
<script type="text/javascript">
	var konnar = prompt ("Введите количество дней:");
	if (konnar < 1 && konnar > 1000) {
	var konnar = prompt ("Введите дни от 1 до 1000:");
	}
	
	
	//function vakitSanau(kon) {
	var kirakKon = new Date ();
	//var konIsemn = ["Якшәмбе", "Дүшәмбе", "Сишәмбе", "Чәршәмбе", "Пәнҗешәмбе", "Җомга", "Шимбә"];
	//var aiIsemn = ["Гыйнвар", "Февраль", "Март", "Апрель", "Май", "Июн", "Июл", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"];
	var kon1970 = Math.round(kirakKon.getTime() / (1000*60*60*24));
	var sailKon = (kon1970 + parseInt(konnar));
	//var el = kirakKon.getFullYear();
	//var ai = kirakKon.getMonth();
	//var aiIsem = aiIsemn[(ai)];
	//var konSan = kirakKon.getDate();
	//var konIsem = konIsemn[kirakKon.getDay()];
	//document.write (el + "<br/>" + aiIsem + "<br/>" + konSan +"<br/>" + konIsem +"<br/>");
	
	
	document.write (sailKon);
	
	//}
	
	
	</script>
Но у меня почему-то условие на ввод от 1 до 1000 не выполняется. Можно вводить и 2000, и слова.
Сначала сделал так:
Код:
var konnar = prompt ("Введите количество дней:");
	if (konnar > 0 && konnar < 1001) {
	document.write (konnar);
	}
	else {
	var konnar = prompt ("Введите дни от 1 до 1000:");
	}
Все выполнялось, но сначала на экран выводило то, что я написал: document.write (konnar); Если его убрать - программа не работала.
Также была проблема, что можно 1 раз ошибиться - все работало, а после второй ошибки уже приходилось обновить страницу. Это тоже можно как-то с помощью циклов сделать, чтобы ошибаться вводом можно было хоть сколько раз?

Заранее спасибо за помощь.

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 29.02.2016 в 11:08.
Bulat Ibrahim вне форума   Ответить с цитированием
Старый 29.02.2016, 10:03   #2
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,022
Репутация: 3738

icq: 512-765
skype: alexp.frl
По умолчанию

Цитата:
Изучаю Яваскрипт по видео-урокам Евгения попова.
Не делай так.

Что за странные имена переменных?

И на форуме есть тег [CODE] для вставки кода:

Последний раз редактировалось Alex11223; 29.02.2016 в 10:05.
Alex11223 на форуме   Ответить с цитированием
Старый 29.02.2016, 14:38   #3
ProBeginner
Форумчанин
 
Регистрация: 22.02.2016
Адрес: в цикле
Сообщений: 145
Репутация: 56
По умолчанию Программирование скрптов для сайтов JavaScript

Цитата:
Сообщение от Bulat Ibrahim Посмотреть сообщение
Это тоже можно как-то с помощью циклов сделать, чтобы ошибаться вводом можно было хоть сколько раз?
Можно, вставить promt в цикл.

Ваш КО

Код:
do
   konnar=prompt ("Введите дни от 1 до 1000:");
while ( konnar != null && !( konnar < 1000 && konnar >= 1 ) );

Последний раз редактировалось ProBeginner; 29.02.2016 в 14:41.
ProBeginner вне форума   Ответить с цитированием
Старый 29.02.2016, 19:32   #4
Bulat Ibrahim
Форумчанин
 
Регистрация: 24.04.2015
Адрес: Татарстан, г. Казань
Сообщений: 190
Репутация: 168
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение

Что за странные имена переменных?
Это я давал имена по-татарски
Bulat Ibrahim вне форума   Ответить с цитированием
Старый 29.02.2016, 19:37   #5
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,022
Репутация: 3738

icq: 512-765
skype: alexp.frl
По умолчанию

Обычно имена дают на английском, особенно если не все предполагаемые читатели кода понимают татарский (но даже если все, то все равно стоит придерживаться английского, как минимум на случай появления новых людей не понимающих его + для однообразия и удобства).
Alex11223 на форуме   Ответить с цитированием
Старый 29.02.2016, 19:45   #6
Bulat Ibrahim
Форумчанин
 
Регистрация: 24.04.2015
Адрес: Татарстан, г. Казань
Сообщений: 190
Репутация: 168
По умолчанию

Цитата:
Сообщение от ProBeginner Посмотреть сообщение
Можно, вставить promt в цикл.

Код:
do
   konnar=prompt ("Введите дни от 1 до 1000:");
while ( konnar != null && !( konnar < 1000 && konnar >= 1 ) );
Спасибо большое, все заработало!!! Скажи пожалуйста, что означает "!= null"? А "do" - это часть цикла, между которыми нужно писать действия, которых нужно повторять? Я о них и не знал...
Bulat Ibrahim вне форума   Ответить с цитированием
Старый 29.02.2016, 19:58   #7
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,022
Репутация: 3738

icq: 512-765
skype: alexp.frl
По умолчанию

Цитата:
А "do" - это часть цикла, между которыми нужно писать действия, которых нужно повторять? Я о них и не знал...
Ну никогда не поздно узнать, почитай главу про циклы в любом учебнике.
https://learn.javascript.ru/while-for
А Попова не смотри, плохому научит.
Alex11223 на форуме   Ответить с цитированием
Старый 29.02.2016, 20:49   #8
ProBeginner
Форумчанин
 
Регистрация: 22.02.2016
Адрес: в цикле
Сообщений: 145
Репутация: 56
По умолчанию JavaScript программирование скриптов для сайтов

Цитата:
Сообщение от Bulat Ibrahim Посмотреть сообщение
что означает "!= null"?
prompt() - возвращает строку введённую пользователем или, если пользователь нажмёт кнопку отмены, то значение будет null.
null - это что-то вроде стандартной константы JavaScript, эквивалент недействительной ссылке.
Проверка на null нужна, чтоб можно было реализовать возможность отказа пользователя что-либо вводить на сайте.
Т.е. цикл повторяется пока пользователь не введёт корректное значение или он не задолбается и откажется от дальнейшей работы. Из цикла скрипта надо выходить когда будут введены правильные данные или в случае отказа от ввода.

Подобная модель д.б. типичной для программирования сайтов.
ProBeginner вне форума   Ответить с цитированием
Старый 29.02.2016, 21:32   #9
Bulat Ibrahim
Форумчанин
 
Регистрация: 24.04.2015
Адрес: Татарстан, г. Казань
Сообщений: 190
Репутация: 168
По умолчанию

Цитата:
Сообщение от ProBeginner Посмотреть сообщение
prompt() - возвращает строку введённую пользователем или, если пользователь нажмёт кнопку отмены, то значение будет null.
Понятно, спасибо. А что означает знак "!"? Пробовал его убрать - выводит NaN.
Bulat Ibrahim вне форума   Ответить с цитированием
Старый 29.02.2016, 21:38   #10
ProBeginner
Форумчанин
 
Регистрация: 22.02.2016
Адрес: в цикле
Сообщений: 145
Репутация: 56
По умолчанию Программирование JavaScript для сайтов

Ох, Булат, Вы лихо пропустили начала JavaScript. Это ж первый раздел любой книги или сайта.
В C-подобных языках есть оператор сравнения "!=" - неравенство.
ProBeginner вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
idHTTP и яваскрипт проверки _ZixeL_ Общие вопросы Delphi 23 12.03.2013 16:50
не срабатывает яваскрипт на сохраненой странице cargo29 JavaScript, Ajax 2 12.12.2012 23:29
Изменить меню на ЯваСкрипт Che Guevara JavaScript, Ajax 2 20.08.2010 17:25
Яваскрипт и selest (html) Winlook JavaScript, Ajax 1 11.03.2010 19:41
не работает яваскрипт в браузерах chrome-е и safari sdf JavaScript, Ajax 5 03.02.2009 02:23


13:24.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.