PRO_Maks

Блог

Главная » 2010 » Сентябрь » 30 » Зодиак на сайте
23:43
Зодиак на сайте
На одном из сайтов нужно было вместе с календарем показывать текущий знак Зодиака. Для этого пришлось придумать как привязать к логическим и математическим выражениям, своего рода математика Зодиака на сайте

Математика Зодиака

Каждый месяц содердит в себе 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]; // Описание
 
Категория: Сайтостроение | Просмотров: 3290 | Добавил: PRO_Maks | Рейтинг: 0.0/0

Форма входа

Категории раздела

"Открытые" решения [2]
Сайтостроение [4]
Заметки о системах управления сайтом CMS, скриптах и шаблонах
Мир uCoz [1]
Мои заметки по работе с uCoz, о шаблонах и скриптах

Поиск

Календарь

«  Сентябрь 2010  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
27282930

Друзья сайта

photo-travels.info сайт о путешествиях и фотографии

введите код

Статистика