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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.02.2016, 08:07   #1
Bulat Ibrahim
Форумчанин
 
Регистрация: 24.04.2015
Сообщений: 199
По умолчанию Даты в Яваскрипт

Изучаю Яваскрипт по видео-урокам Евгения попова. Но проблема в выполнении одного "домашнего задания":
/*
Домашнее задание к 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 в 10:08.
Bulat Ibrahim вне форума Ответить с цитированием
Старый 29.02.2016, 09:03   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

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

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

И на форуме есть тег [CODE] для вставки кода:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

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

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

Ваш КО

Код:
do
   konnar=prompt ("Введите дни от 1 до 1000:");
while ( konnar != null && !( konnar < 1000 && konnar >= 1 ) );
Возьму в кредит мильён по 100% годовых на сто лет.

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

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

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

Обычно имена дают на английском, особенно если не все предполагаемые читатели кода понимают татарский (но даже если все, то все равно стоит придерживаться английского, как минимум на случай появления новых людей не понимающих его + для однообразия и удобства).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 29.02.2016, 18:45   #6
Bulat Ibrahim
Форумчанин
 
Регистрация: 24.04.2015
Сообщений: 199
По умолчанию

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

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

Цитата:
А "do" - это часть цикла, между которыми нужно писать действия, которых нужно повторять? Я о них и не знал...
Ну никогда не поздно узнать, почитай главу про циклы в любом учебнике.
https://learn.javascript.ru/while-for
А Попова не смотри, плохому научит.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 29.02.2016, 19:49   #8
ProBeginner
Форумчанин
 
Регистрация: 22.02.2016
Сообщений: 145
По умолчанию JavaScript программирование скриптов для сайтов

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

Подобная модель д.б. типичной для программирования сайтов.
Возьму в кредит мильён по 100% годовых на сто лет.
ProBeginner вне форума Ответить с цитированием
Старый 29.02.2016, 20:32   #9
Bulat Ibrahim
Форумчанин
 
Регистрация: 24.04.2015
Сообщений: 199
По умолчанию

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

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


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

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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 18:41
не работает яваскрипт в браузерах chrome-е и safari sdf JavaScript, Ajax 5 03.02.2009 01:23