В качестве параметров функция принимает месяц и число рождения, то есть те параметры, которые необходимы и достаточны для определения знака зодиака. Следующей строкой мы перечисляем все знаки зодиака и записываем их в массив.
В переменную signsstart мы записываем числа, соответствующие последнему дню предыдущего знака. Например, стрельцы заканчиваются 21-го числа (козероги начинаются 22-го числ ...
В качестве параметров функция принимает месяц и число рождения, то есть те параметры, которые необходимы и достаточны для определения знака зодиака. Следующей строкой мы перечисляем все знаки зодиака и записываем их в массив.
В переменную signsstart мы записываем числа, соответствующие последнему дню предыдущего знака. Например, стрельцы заканчиваются 21-го числа (козероги начинаются 22-го числа), поэтому именно число 21 и идёт первым элементом. Козероги заканчиваются 20-го числа, соответственно, число 20 идёт вторым элементом и так далее.
Наконец, последней строкой мы определяем, попадает ли день рождения в следующий знак зодиака соответствующего месяца, если да, то возвращается знак под номером, соответствующим остатку при делении месяца на 12, а если нет, то возвращается предыдущий знак зодиака. Не забываем, что нумерация знаков идёт не с 1, а с 0!
В качестве тестового примера было выбрано 11 июля, а результатом работы данного скрипта была строка: "Рак", что соответствует действительности.