Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Скрипт определяющий знак зодиака по дате рождения


Автор: slon35 1.6.2011, 04:09
Здравствуйте! Можете помочь написать скрипт который будет выводить знак зодиака по введеной дате. JS начал учить совсем недавно, так что я в нем еще нуб)

Желательно надо написать его через switch кейсами.

Я написал так: 
Код

var dm = parseInt(prompt('Введите дату', 19.2));
if (dm<20.1 && dm>=18.2) {
alert('Водолей')
}
else if (dm<19.2 && dm>=20.3) {
alert('Рыбы')
}
else if (dm>=21.3 && dm<19.4) {
alert('Овен')
}
else if (dm>=20.4 && dm<20.5) {
alert('Телец')
}
else if (dm>=21.5 && dm<21.6) {
alert('Близнецы')
}
else if (dm>=21.5 && dm<21.6) {
alert('Рак')
}
else if (dm>=21.5 && dm<21.6) {
alert('Лев')
}
else if (dm>=21.5 && dm<21.6) {
alert('Дева')
}
else if (dm>=21.5 && dm<21.6) {
alert('Весы')
}
else if (dm>=21.5 && dm<21.6) {
alert('Скорпион')
}
else if (dm>=21.5 && dm<21.6) {
alert('Стрелец')
}
else if (dm>=21.5 && dm<21.6) {
alert('Козерог')
}
else {
alert('Не правильная дата')

    

Скрипт запускается, но показывает неверные данные, точнее всегда пишет 'Не правильная дата'. Пробывал писать через switch кейсами, но там вобще бред получился...

Вот само условие:

Даны два целых числа: D (день) и M (месяц), определяющие правильную дату.
Вывести знак Зодиака и гороскоп, соответствующий этой дате:

«Водолей» (20.1–18.2),
«Рыбы» (19.2–20.3),
«Овен» (21.3–19.4),
«Телец» (20.4–20.5),
«Близнецы» (21.5–21.6),
«Рак» (22.6–22.7),
«Лев» (23.7–22.8),
«Дева» (23.8–22.9),
«Весы» (23.9–22.10),
«Скорпион» (23.10–22.11),
«Стрелец» (23.11–21.12),
«Козерог» (22.12–19.1).     

Зараннее спасибо.

    

Автор: aleksandy 1.6.2011, 05:06
1. java != javascript
2. твоя проблема в parseInt

Автор: slon35 1.6.2011, 13:37
Цитата(aleksandy @ 1.6.2011,  05:06)
1. java != javascript
2. твоя проблема в parseInt

parseInt убрал, но проблема осталась. Вобще не понимаю причем он? Ведь parseInt выводит зараннее значение в поле ввода.

Автор: bars80080 1.6.2011, 13:45
parseInt ничего не выводит, он преобразует введённое число к int формату. если ты вводишь 19.2 или 19.9, то после parseInt получишь 19

и ещё, не расскажешь, какое число может удовлетворять такому условию:
Цитата(slon35 @  1.6.2011,  04:09 Найти цитируемый пост)
else if (dm<19.2 && dm>=20.3) {


Автор: iff 1.6.2011, 16:12
if (dm<20.1 && dm>=18.2) { это написано во второй строке. dm сравнивается с числом 20 целых 1 десятая, а не с датой.
var dm = parseInt(prompt('Введите дату', 19.2)); это в первой строке. Вы знаете как работает prompt? Этой функции надо передать одно или два значения: первое - заголовок, воторе (может отсутствовать) - значение по умолчанию. parseInt округлит введённое число (одно) до целых.
http://www.w3schools.com/jsref/met_win_prompt.asp
Для работы с датой можно применить объект класса Date. Подробнее здесь:
http://lit.jinr.ru/LCTA/Java/javascript/chapt6.htm

Автор: CruorVult 2.6.2011, 11:32
Цитата(slon35 @  1.6.2011,  04:09 Найти цитируемый пост)
if (dm<20.1 && dm>=18.2) {alert('Водолей')}else if (dm<19.2 && dm>=20.3) {alert('Рыбы')}else if (dm>=21.3 && dm<19.4) {alert('Овен')}else if (dm>=20.4 && dm<20.5) {alert('Телец')}else if (dm>=21.5 && dm<21.6) {alert('Близнецы')}else if (dm>=21.5 && dm<21.6) {alert('Рак')}else if (dm>=21.5 && dm<21.6) {alert('Лев')}else if (dm>=21.5 && dm<21.6) {alert('Дева')}else if (dm>=21.5 && dm<21.6) {alert('Весы')}else if (dm>=21.5 && dm<21.6) {alert('Скорпион')}else if (dm>=21.5 && dm<21.6) {alert('Стрелец')}else if (dm>=21.5 && dm<21.6) {alert('Козерог')}else {alert('Не правильная дата')} 


не лень было писать не зная точно будет оно работать или нет?  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)