Скрипт расчета времения восхода-захода Солнца

Zlo_606ep
На сайте с 14.12.2006
Offline
129
4182

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

Вопрос есть ли у кого-нибудь сабж на php или аналога на других языках (любом кроме brainfuck'a 8-))

_____________________

Интересуют константы, учет декретного времени; географические координаты - есть,

I
На сайте с 22.12.2006
Offline
33
Ink
#1

См. книгу "Астрономя на домашнем компьютере". С книгой идёт диск, на котором есть программы на C++ (или C, не помню). Где-то эти программы должны быть выложены в инете...

AM
На сайте с 04.11.2003
Offline
57
#2

PHP Classes - Class: Sunset & Sunrise

Вроде бы неплохой, в свое время использовал. Конечно, точность не до минуты, погрешность +/-15 минут.

Анатолий Денисов
На сайте с 09.06.2007
Offline
48
#3
Arty.M:
PHP Classes - Class: Sunset & Sunrise
Вроде бы неплохой, в свое время использовал. Конечно, точность не до минуты, погрешность +/-15 минут.

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

ЖЖ (http://anatolydenisov.livejournal.com/), Гос. тендеры (http://tender.cmsmagazine.ru/gos/), стоимость разработки сайтов (http://www.cmsmagazine.ru/creators/price/)
Zlo_606ep
На сайте с 14.12.2006
Offline
129
#4

update:

Нашел сабж на javascript-е тут - http://www.ussr.to/Belarus/sscript/sun/suncalc.htm

Однако! при переделке на php возникла проблема - точность вычислений - видимо в ява-скрипте используется "калькуляторное" Пи, а в пхп - урезанное до int -

3.14159265359, в связи с этим возникает ощутимое расхождение с java (javascript выдает такие же данные как и Яндекс.Погода), как быть? Использовать gmp функции? - не хочется грузить бублиотеки - хостер..., нет ли у кого-нибудь мыслей по решению проблем связанных с ограниченностью точности чисел?

Shtogrin
На сайте с 02.11.2006
Offline
95
#5

Не до int урезанное, а до 14 знаков после запятой. Неужели не хватает точности? Cделайте свою константу, 314159265.359??????, потом разделите на 10^9

www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
Zlo_606ep
На сайте с 14.12.2006
Offline
129
#6

Пытаюсь, но не выходит

define('PI','3.1415926535897932384626433832795');

echo PI+1; - все равно "обрезает"

Однако, буду работать в этом направлении define('PI','3.1415926535897932384626433832795');

echo bcadd(PI,PI,31); - выведет 2*pi!

Shtogrin
На сайте с 02.11.2006
Offline
95
#7

<?php

ini_set('precision',32);
?>
Zlo_606ep
На сайте с 14.12.2006
Offline
129
#8
Shtogrin:
<?php

ini_set('precision',32);
?>

все равно, отказывается (локаль, винда) выдавать больше 18 знаков 😕

Zlo_606ep
На сайте с 14.12.2006
Offline
129
#9

Оказывается совсем не в том дело! JavaScript как результат действия "%" выводит не пойми что, число с дробной частью, вместо целого, от этого все погрешности. Странно, но получаемые "неверные" данные такие же как и в Яндекс.Погоде (данные о восходе-закате)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий