Mathian
Мастер
Всем Хай!
Ниже приведён пример, как узнать знак зодиака по дате рождения.
Ниже приведён пример, как узнать знак зодиака по дате рождения.
PHP:
<?php
function getZodiacalSign($month, $day)
{
$signs = array("Козерог","Водолей","Рыбы","Овен","Телец","Близнецы","Рак","Лев","Девы","Весы","Скорпион","Стрелец");
$signsstart = array(1=>21,2=>20,3=>20,4=>20,5=>20,6=>20,7=>21,8=>22,9=>23,10=>23,11=>23,12=>23);
return $day < $signsstart[$month +1]? $signs[$month -1]: $signs[$month %12];
}
echo getZodiacalSign(7,11);
?>
Автор: НеизвестноВ качестве параметров функция принимает месяц и число рождения, то есть те параметры, которые необходимы и достаточны для определения знака зодиака. Следующей строкой мы перечисляем все знаки зодиака и записываем их в массив.
В переменную signsstart мы записываем числа, соответствующие последнему дню предыдущего знака. Например, стрельцы заканчиваются 21-го числа (козероги начинаются 22-го числа), поэтому именно число 21 и идёт первым элементом. Козероги заканчиваются 20-го числа, соответственно, число 20 идёт вторым элементом и так далее.
Наконец, последней строкой мы определяем, попадает ли день рождения в следующий знак зодиака соответствующего месяца, если да, то возвращается знак под номером, соответствующим остатку при делении месяца на 12, а если нет, то возвращается предыдущий знак зодиака. Не забываем, что нумерация знаков идёт не с 1, а с 0!
В качестве тестового примера было выбрано 11 июля, а результатом работы данного скрипта была строка: "Рак", что соответствует действительности.
