На одном из сайтов нужно
было вместе с календарем показывать текущий знак Зодиака. Для этого пришлось придумать как привязать к логическим и математическим выражениям, своего рода математика Зодиака на сайтеМатематика
ЗодиакаКаждый месяц
содердит в себе 2 знака Зодика, их смена
происходит в определенные дни,
попробуем их записать в виде таблицы Распределение
знаков зодиака по месяцам№ | Месяц | Знак
до | Дата
смены знака | Знак
после | разница |
---|
0 | Январь | Козерог | 20 | Водолей | 0 | 1 | февраль | Водолей | 20 | Рыбы | 0 | 2 | Март | Рыбы | 20 | Овен | 0 | 3 | Апрель | Овен | 20 | Телец | 0 | 4 | Май | Телец | 20 | Близнецы | 0 | 5 | Июнь | Близнецы | 21 | Рак | 1 | 6 | Июль | Рак | 22 | Лев | 2 | 7 | Август | Лев | 23 | Дева | 3 | 8 | Сентябрь | Дева | 23 | Весы | 3 | 9 | Октябрь | Весы | 23 | Скорпион | 3 | 10 | Ноябрь | Скорпион | 22 | Стрелец | 2 | 11 | Декабрь | Стрелец | 21 | Козерог | 1 | Как видно большую
часть занимает число 20, примем это число
за точку отсчета, и в последнем столбце
запишем разницу. В коде JavaScript
var Zodiac = [ /*[Delta, Zodiac_Name]*/
[0, 'Козерог'],
[0, 'Водолей'],
[0, 'Рыбы'],
[0, 'Овен'],
[0, 'Телец'],
[1, 'Близнецы'],
[2, 'Рак'],
[3, 'Лев'],
[3, 'Дева'],
[3, 'Весы'],
[2, 'Скорпион'],
[1, 'Стрелец']]
Теперь чтобы
определить знак Зодиака по дате,
необходимо var data = new Date;
var day = data.getDate();
var month = data.getMonth();
var current = (day < (20 + Zodiac[month][0]))?Zodiac[month][1]:Zodiac[month+1][1];
Если последняя
строчка кажется Вам пока еще сложной
для понимания var current;
var changeDay = 20 + Zodiac[month][0];
if (day < changeDay){
current = Zodiac[month][1];
}else{
current = Zodiac[month+1][1];
}
Для любителей разного
рода программных извращений
можно записать var current = Zodiac[month +
Math.floor(day /(20 + Zodiac[month][0]))][1];
В случае когда кроме
названия знака Зодиака нужно получить
ссылку на изображение или
описание, и они записаны в массиве
Zodiac[][] var Zodiac = [ /*[Delta, Zodiac_Name, Image, Descript]*/
[0, 'Козерог', '/img/kozerog.jpg', ,],
[0, 'Водолей', '/img/vodolej.jpg', ,],
[0, 'Рыбы', '/img/pyby.jpg', ,],
[0, 'Овен','/img/oven.jpg', ,],
[0, 'Телец','/img/kozerog.jpg', ,],
* * *
[1,
'Стрелец',/img/strelez.jpg', , ]];
var index = (day < (20 +
Zodiac[month][0]))?month:month+1;
var name = Zodiac[index][1]; // Название
var name = Zodiac[index][2]; // Картинка
var name = Zodiac[index][3]; // Описание
|