«Единственный способ творить великие дела – это любить то, что ты делаешь»
JavaScript



Игра «Морской Бой» на JavaScript: Простая Игра и Игра для Двоих



Теперь следует выполнить практическую задачу по работе с методами объекта Date.

Подсказка для тех, кто захочет выполнить его самостоятельно: в нем нужно будет создавать объект Date для НЕ сегодняшней даты и в качестве параметра указать определенное число миллисекунд (об этом шла речь здесь).



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

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

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

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

Подсказка. Если задание кажется сложным, не спешите смотреть ответ.
Постарайтесь разбить задачу на как можно более мелкие шажки и для начала попробуйте написать код просто для конкретного числа дней, вообще не используя функцию.

Фрагмент кода

<script type = "text/javascript">

var months = ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"]; /* Массив месяцев */
var days = ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница","Суббота"]; /* Массив дней недели */

var day_now = new Date(); /* Объект Date для текущей даты */
var milliNow = day_now.getTime(); /* Число миллисекунд от 1-го января 1970 года до текущей даты */

function now_date(N) /* Функция с одним параметром */
{
var day_after_N = new Date(1000 * 60 * 60 * 24 * N); /* Объект Date для даты через N дней после 1-го января 1970 */
var milliN = day_after_N.getTime(); /* Число миллисекунд в N днях */

var milliNowPlusN = new Date(milliNow + milliN); /* Объект Date для даты через N дней после текущей */

document.write(N + " - через указанное Вами число дней будет следующая ДАТА: <p>");
document.write("Год: " + milliNowPlusN.getFullYear() + "<br>");
document.write("Месяц: " + months[milliNowPlusN.getMonth()] + "<br>");
document.write("День недели: " + days[milliNowPlusN.getDay()] + "<br>");
document.write("Число: " + milliNowPlusN.getDate() + "<br>");
}

var user = prompt("Через какое количество дней от 1 до 1000 Вам интересно знать Дату?"); /* Запрос для пользователя */
var n = Math.round(user); /* Округляем введенное пользователем число */

if (n > 1 && n < 1000) /* Если указанное число находится в диапазоне от 1 до 1000, то... */
{
now_date(n); /* Вызываем функцию */
}
else
{
document.write("Вы указали НЕ число, либо число за пределами диапазона от 1 до 1000")
}

</script>

Результат

Условие в этом решении можно было составить немного иначе:

Фрагмент кода

<script type="text/javascript">

if (n > 1000 || n < 1 || isNaN(n)) /* Если указанное число НЕ находится в диапазоне от 1 до 1000 ИЛИ оно НЕ число, то... */
{
document.write("Вы указали НЕ число, либо число за пределами диапазона от 1 до 1000")
}
else
{
now_date(n); /* Вызываем функцию */
}

</script>

Результат будет тот же. Только в первом случае создавалось условие при помощи логического оператора И, а здесь при помощи оператора ИЛИ и, кроме этого, введена проверка на тот случай, если n - это не число при помощи функции isNaN.



Отзывы и комментарии:

Комментариев нет...

Оставить отзыв:

Ваше Имя:

Текст комментария:

Ответьте на вопрос:

Сколько дней в Високосном году?


Объект Date
Практическая задача - Не сегодняшняя дата
1935
Методы объекта Date - Дата и Время
2949
Практическая задача - методы объекта Date
1886
Метод getTime - Практика по объекту Date
3778

Тематические публикации
Популярные заметки
Последние заметки