Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
Krapters
1 / 1 / 0
Регистрация: 01.04.2012
Сообщений: 34
1

Вывод знака по гороскопу

07.02.2013, 11:54. Просмотров 437. Ответов 1
Метки нет (Все метки)

Доброго времени суток.
Суть задачи такова -написать сценарий, который по дате рождения человека определяет знак его зодиака.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<html>
<title>rogdenia</title>
<body>   
  <label> Vvedite datu rogdenia (xx.xx.xxxx): </label>
<br>
<br>
<input type = "text">
<input type = "button" onClick = "alert(detectSign(this.previousSibling.value))" value = "Zodiak">
<br>
<br>
<script>
    detectSign = (function() {
      var 
        signs = {
          "oven":    [new Date("1900/03/21"), new Date("1900/04/20")],
          "telec":  [new Date("1900/04/21"), new Date("1900/05/20")],
          "blezneci":  [new Date("1900/05/21"), new Date("1900/06/21")],
          "rak":    [new Date("1900/06/22"), new Date("1900/07/22")],
          "lew":    [new Date("1900/07/23"), new Date("1900/08/23")],
          "deva":    [new Date("1900/08/24"), new Date("1900/09/23")],
          "vesi":    [new Date("1900/09/24"), new Date("1900/10/23")],
          "skoprion":  [new Date("1900/10/24"), new Date("1900/11/22")],
          "strelec":  [new Date("1900/11/23"), new Date("1900/12/21")],
          "kozerog":  [new Date("1900/12/22"), new Date("1901/01/20")],
          "vodolei":  [new Date("1900/01/21"), new Date("1900/02/20")],
          "Ribi":    [new Date("1900/02/21"), new Date("1900/03/20")]
        }, x, errString = "неверные данные."
      ;
      function test(date) {
        for (x in signs) {
          if(date >= signs[x][0] && date <= signs[x][1]) {
            return x;
          }
        }
        return errString;
      }
      function normalize(date) {
        date = date.split(/\D+/g);
        if(date.length < 2 || date.length > 3) {
          return false;
        } else if(date.length === 2){
          date.push("1900");
        } else {
          date.splice(2, 1, "1900");
        }
        if(+date[0] >= 1 && +date[0] <=20 && +date[1] === 1) {
          ++date[2]
        }
        date.reverse();
        return date.join("/");
      }
      return function(date) {
        date = normalize(date);
        if(!date){
          return errString;
        }
        date = new Date(date);
        return test(date);
      }
    })();
  </script>
  
</body>
</html>
Скажите, где именно допустил ошибку.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2013, 11:54
Ответы с готовыми решениями:

Вывод знака + перед числом
Привет! подскажите как мне решить такую проблему есть переменная...

Вывод символов в виде ? знака в ромбе
Вот код &lt;?php header(&quot;Content-Type: text/html;charset=uTf-8&quot;); $b=&quot;Напишем...

Class MyInt хранение и вывод знака из операторов
Предположим я создал класс MyInt: public class MyInt { privat readonly...

Вывод double в TextBox с округлением до четвёртого знака
Подскажите, пожалуйста Вывожу матрицу чисел double Как вывести их, округляя...

Вывод текста из документа на форму до определенного знака
Здравствуйте! Нужно написать цикл для вывода содержимого из текстового...

1
newJS
2397 / 1070 / 307
Регистрация: 23.06.2011
Сообщений: 3,330
08.02.2013, 09:01 2
как то так

HTML5
1
2
3
4
5
6
7
<div>Суть задачи такова -написать сценарий, который по дате рождения человека определяет знак его зодиака.</div>
<div>Введите дату рождения в формате: число, месяц, год</div>
<input type="text" value="11" name="day" id="day"> Число<br>
<input type="text" value="7" name="mon" id="mon"> Месяц<br>
<input type="text" value="2012" name="yea" id="yea"> Год<br>
<input type="button" value="Узнать Ваш знак" onclick="know();"><br>
Ваш знак: <span id="znak" style="color:red;"></span>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function know(){
var Q, d, n, m, y, k=12;
d=document;
Q=[];
Q[0]=[1, 21, 2, 20, 31, "Водолей"];
Q[1]=[2, 21, 3, 20, 28, "Рыба"];
Q[2]=[3, 21, 4, 20, 31, "Овца"];
Q[3]=[4, 21, 5, 20, 30, "Телец"];
Q[4]=[5, 21, 6, 21, 31, "Двойняшки"];
Q[5]=[6, 22, 7, 22, 30, "Рак"];
Q[6]=[7, 23, 8, 23, 31, "Лев"];
Q[7]=[8, 24, 9, 23, 31, "Девка"];
Q[8]=[9, 24, 10, 23, 30, "Весы"];
Q[9]=[10, 24, 11, 22, 31, "Скорпион"];
Q[10]=[11, 23, 12, 21, 30, "Стрелок"];
Q[11]=[12, 22, 1, 20, 31, "Козерог"];
 
d.getElementById("znak").innerHTML="";
//проверяем радиус изгиба рук того кто вводил данные
n=d.getElementById("day").value;
if(/[^0-9]/.test(n)||n<1||n>31){alert('Плохое число'); return;};
m=d.getElementById("mon").value;
if(/[^0-9]/.test(m)||m<1||m>12){alert('Плохой месяц'); return;};
y=d.getElementById("yea").value;
if(/[^0-9]/.test(y)||y<1900||y>new Date().getFullYear()){alert('Плохой год'); return;};
if(n>Q[m-1][4]){
if(!(y%4==0&&n==29)){alert('Число не соответствует месяцу'); return;}};
//отлавливаем нужный диапазон
while(k--){if((m==Q[k][0]&&n>=Q[k][1])||(m==Q[k][2]&&n<=Q[k][3])){break;}};
 
d.getElementById("znak").innerHTML=Q[k][5];
 };
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2013, 09:01

Вывод double, округленного до 2-го знака после запятой
Каким образом вывести округленное до 2-го знака double? Нашел только вариант с...

Вывод знака в консоль из таблицы символов Windows (charmap)
Подскажите пожалуйста как вывести математический знак умножения (точка) из...

Как обеспечить вывод числа с точностью до определённого знака?
Нужно вычислить выражение в Delphi с определённой точностью. Каким образом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru