Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/58: Рейтинг темы: голосов - 58, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 30.11.2018
Сообщений: 4
1

Скрипт, определяющий по введенной дате рождения знак зодиака, день недели, был ли год рождения високосным.

30.11.2018, 21:47. Показов 10698. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, ребят буду благодарен если кто напишет, в написанном постараюсь разобраться сам.

Скрипт, определяющий по введенной дате рождения знак зодиака, день недели, был ли год рождения високосным. Результат выводить на той же странице.
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2018, 21:47
Ответы с готовыми решениями:

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

Пользовательский метод который определяет знак зодиака по введенной дате рождения
Необходимо создать метод, который определяет знак зодиака человека по введенной дате рождения

По дате (месяц и день) рождения определите знак Зодиака.
Понятия не имею как делать эту задачу. По дате (месяц и день) рождения определите знак Зодиака. ...

По введенной дате рождения определить день недели
Используя оператор выбора Select Case: По введенной дате рождения сообщить пользователю, в какой...

10
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
30.11.2018, 22:57 2
Saden1, со знаками зодиака неувязочка может выйти: существует аж 3 (три) варианта их определения, см. в википедии
вам который из них нужен?
0
1 / 1 / 0
Регистрация: 30.11.2018
Сообщений: 4
30.11.2018, 23:12  [ТС] 3
2 вроде используется в России, можно его.
0
2 / 1 / 1
Регистрация: 07.08.2014
Сообщений: 22
30.11.2018, 23:30 4
Лучший ответ Сообщение было отмечено Saden1 как решение

Решение

PHP/HTML
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
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
    function leapYear(year){
        return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
    }
 
    function DayOfWeek(dayofweek){
        switch(dayofweek){
            case 0: return "Воскресенье"; break;
            case 1: return "Понедельник"; break;
            case 2: return "Вторник"; break;
            case 3: return "Среда"; break;
            case 4: return "Четверг"; break;
            case 5: return "Пятница"; break;
            case 6: return "Суббота"; break;
        }
    }
 
    function iHoroscopej(d, m) {
        var zod = [[19, 'Козерог (22.12–19.1)'],[18, 'Водолей (20.1–18.2)'],[20, 'Рыбы (19.2–20.3)'],[19, 'Овен (21.3–19.4)'],[20, 'Телец (20.4–20.5)'],[21, 'Близнецы (21.5–21.6)'],[22, 'Рак (22.6–22.7)'],[22, 'Лев (23.7–22.8)'],[22, 'Дева (23.8–22.9)'],[22, 'Весы (23.9–22.10)'],[22, 'Скорпион (23.10–22.11)'],[21, 'Стрелец (23.11–21.12)']];
 
        if(zod[m][0] < d){
            m=m+1;
        }
        if (m>12){m=1;}
 
        return zod[m][1];
    }   
    
 
    function GetData(){
 
        var date = new Date($('.date').val());
 
        //Определяем високостность года
        if(leapYear(date.getYear())){$('.bigyear span').html("Да");}
        else{$('.bigyear span').html("Нет");}
 
        //День недели
        $('.dayofweek span').html(DayOfWeek(date.getDay()));
 
        //Знак Зодиака
        $(".zodiac span").html(iHoroscopej(date.getDate(), date.getMonth()))
 
    }
</script>
<style>
    div span{display:block; margin:5px 0;}
    div span span{display:inline; font-weight:bold;}
</style>
<input type='date' class='date' oninput='GetData();'/>
<div class='results'>
<span class='zodiac'>Знак Зодиака: <span></span></span>
<span class='dayofweek'>День недели: <span></span></span>
<span class='bigyear'>Високосный год: <span></span></span>
</div>
1
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
01.12.2018, 05:54 5
Enterely, високосность года легко определяется и без арифметики
установите в объекте new Date () 29 февраля нужного года и запросите getMonth () объекта: если вследствие автоисправления даты месяц изменится на март, то год невисокосный, если же останется февраль, то високосный
и зачем тащить сюда целую библиотеку?
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
01.12.2018, 10:00 6
Лучший ответ Сообщение было отмечено Saden1 как решение

Решение

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
function checkDate(date) {
   
   // День недели
   console.log('День недели: ' + (['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'])[date.getDay()]);
   
   // Високосность
   var feb29 = new Date('' + date.getYear() + '/02/29');
   console.log(feb29.getDate() === 29 ? 'Високосный' : 'Не високосный');  
   
   // Зодиак
   const dateNum = date.getDate();
   const monthNum = date.getMonth() + 1;
   
   var zodiacs = [
      [23, 8], [22, 9], 'Дева',  
      [23, 9], [23, 10], 'Рыбы',
      // и т.д.
   ];
   
   for(var i = 0; i < zodiacs.length; i+=3) {
      if(zodiacs[i][1] === monthNum && zodiacs[i][0] <= dateNum ||
        zodiacs[i + 1][1] === monthNum && zodiacs[i + 1][0] >= dateNum)  {
         console.log('Знак зодиака: ' + zodiacs[i + 2]);
         break;
      }    
   }
}
 
checkDate(new Date('2016/09/16'))
0
1 / 2 / 0
Регистрация: 19.11.2018
Сообщений: 13
01.12.2018, 10:39 7
Я немного не понимаю, зачем скрипт писать в HTML5 окне на форуме?Ведь js не подсвечивается внутри внутреннего скрипта( (с) Кличко)
1
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
01.12.2018, 11:50 8
Цитата Сообщение от Melorum Посмотреть сообщение
Я немного не понимаю
да, в BB-тегах [HТML /HТML подсветка скриптов не работает, нужно использовать BB-теги PHPHTML /PHPHTML, но я тоже "немного не понимаю" -- как не особо опытные участники форума должны об этом догадаться?
1
1 / 1 / 0
Регистрация: 30.11.2018
Сообщений: 4
01.12.2018, 13:56  [ТС] 9
Благодарен всем, но не работает, тяжко разобраться в том что не пашет)))
0
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
01.12.2018, 14:00 10
Лучший ответ Сообщение было отмечено Saden1 как решение

Решение

Saden1, в современном браузере работает:
PHP/HTML
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
<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <input type="date" id="birth">
    <input type="button" id="ok" value="Результат">
    <div id="result"></div>
    <script>
        // Год високосный, если он делится на четыре без остатка, но если он делится на 100 без остатка, это не високосный год. 
        // Однако, если он делится без остатка на 400, это високосный год. 
        // Таким образом, 2000 г. является особым високосным годом, который бывает лишь раз в 400 лет. 
        let isLeap = year => ((year % 4 === 0) && ((year % 400 === 0) || (year % 100 != 0)));
 
        let zodiak = (date) => {
            let goroskop = [
                ["Козерог", 20],
                ["Водолей", 19],
                ["Рыбы", 20],
                ["Овен", 20],
                ["Телец", 21],
                ["Близнецы", 21],
                ["Рак", 22],
                ["Лев", 21],
                ["Дева", 23],
                ["Весы", 23],
                ["Скорпион", 22],
                ["Стрелец", 22]
            ],
                month = date.getMonth(),
                day = date.getDate();
 
            return goroskop[month][1] >= day ? goroskop[month][0] : goroskop[month === 11 ? 0 : month + 1][0];
        };
 
        document.getElementById("ok").onclick = () => {
            let birth = document.getElementById("birth"),
                result = document.getElementById("result"),
                date = new Date(birth.value),
                s = `${zodiak(date)}<br/>
${date.toLocaleDateString("ru", { weekday: "long" })}<br/> 
${isLeap(date.getFullYear()) ? "В" : "Нев"}исокосный год`;
 
            result.innerHTML = s;
        }
    </script>
</body>
</html>
1
1 / 1 / 0
Регистрация: 30.11.2018
Сообщений: 4
01.12.2018, 14:05  [ТС] 11
Да, действительно, мой фейл, спасибо что помогли нубу)
0
01.12.2018, 14:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2018, 14:05
Помогаю со студенческими работами здесь

По дате рождения сосчитать знак Зодиака и знак по китайскому гороскопу
По дате рождения сосчитать знак Зодиака и знак по китайскому гороскопу (все в форме). Все условия...

Определение по дате рождения знак Зодиака
Задача. Известно что астрологи делят год на 12 периодов и каждому из них ставят в соответствие одни...

По дате рождения определить знак зодиака
program znak; uses crt; var m,d:byte; begin clrscr; writeln('Введите дату рождения(пример 12...

По дате рождения опредилить знак зодиака
По дате рождения опредилить знак зодиака!


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru