Лунный календарь (когда китайский Новый год?), знаки зодиака на JavaScript

5 (100%) 3 vote[s]

Почему люди читают гороскоп, находя в них точки опоры в самопознании и оценке взаимоотношений между людьми? Жизнь наших предков организовывалась лунным календарем, во многих мусульманских странах лунный календарь и сейчас является основным способом времяисчисления. А в азиатских странах, в Израиле существует своя история с использованием лунно-солнечного календаря, идущая корнями в глубокую историю, и мы, с нашими европейскими традициями, принимаем во внимание все эти разные подходы к организации шкалы времени и пытаемся найти некую логическую взаимосвязь между временной периодичностью и нашими качествами, событиями в окружающем мире. Многие аграрии, далекие от разных мистификаций, до сих пор внимательно следят за фазами луны и делают поправки в своих планах.



Лунный месяц: как считать?

Для многих людей, привыкших к Григорианскому календарю, сложности вызывает даже вычисление знака зодиака, не говоря уже о дате начала Нового года по китайскому календарю. Дело в том, что в основе этого способа исчисления лежит лунно-солнечный календарь, и начало Нового года не совпадает с традиционным 1 января. Причем год от года эта дата меняется. Весь фокус в том, что началом Нового года (например, в 2020 году наступит год Крысы, причем произойдет это аж 25 января) считается первое новолуние, припадающее на момент, когда Солнце находится в созвездии Водолея. Этот период — с 20 января до 19 февраля включительно.

Напомним, что в основе солнечного календаря лежит тропический год — время полного оборота Земли вокруг Солнца по весеннему равноденствию (на сегодня это 365,2421897 дней). Это способ исчисления лежит в основе Григорианского календаря, который является основным, наиболее точным способом времяисчисления в мире. 

Лунный календарь воспринимается сложнее, поскольку мы имеем 2 вида лунного месяца: синодический,  собственно и есть лунный месяц, на основе которого строится лунный календарь (время полного оборота вокруг Земли относительно Солнца, связан со сменой фаз Луны и равен 29,53059 суток) и сидерический (время появления Луны в тех же координатах звёздного неба, т.е. полный оборот вокруг Земли относительно звезд и равен уже 27,3216610 суток). Сложность именно в том, что всё это наблюдается невооружённым глазом. Кроме того, синодический лунный месяц — величина непостоянная, связанная с возмущениями орбиты. Из-за различной продолжительности лунного и солнечного года исламский лунный календарь имеет особенность: одни и те же месяцы в разные годы не попадают на одно и то же время года.  

Лунный календарь на JavaScript: что получается

Для онлайн-расчетов на многих сервисах используется API, имеющий доступ к обширной базе данных, но мы попробуем проверить возможность «чистого вычисления» и сравним его с фактическими данными.

И вот наша задача: как сделать лунный календарь в виде приложения, которое использует вводимую пользователем дату в формате день-месяц-год и в результате получал бы знак зодиака, лунный календарь (лунный день, фаза Луны, предыдущее новолуние, следующее новолуние), год по китайскому гороскопу и дату, когда в указанном году происходит смена года по китайскому гороскопу.

Сразу отметим, что для разной широты данные несколько отличаются, поэтому мы использовали исходную дату последнего новолуния в 2019 году для Киева. Кроме того, орбита Луны не всегда постоянна, поэтому в промежутке одного лунного месяца длительность отдельного лунного дня может варьировать от абсолютного (вычисляемого) значения, но, самое главное — это то, что в итоге полный оборот Луна делает «вовремя». Таким образом, мы можем с высокой точностью (опять же для определенной широты) рассчитать количество лунных месяцев, но с лунными днями будут погрешности (+- несколько часов). Но, для рядового пользователя (не караулящего Луну с секундомером) этого более чем достаточно. Чтобы посмотреть приложение, кликните по картинке:

лунный календарь на JS

Это приложение будет интересно не только как калькулятор для проверки своего гороскопа, но и для любителей JavaScript, а именно для его изучения. В коде мы оставили массу комментариев, поэтому разобраться в нем будет вполне возможно. Кроме того, его можно расширить или усовершенствовать (у нас время на работу с ним уже исчерпано). Скачать приложение можно по ссылке здесь (архив .zip).

Читайте больше по теме:

Подписаться
Уведомление о
guest
0 комментариев
Inline Feedbacks
View all comments
Просмотры: 435

Популярные записи