Во вложении сам макрос SUN_TIME.tpl
И пример в 12 версии OL
На выходе макроса время в двух форматах
- аналог TIME_OF_DAY (сокр. TOD) содержит время суток, начиная с 0 часов (с точностью до миллисекунд)
- и в секундах начиная с 0 часов
Причем время рассчитано по Гринвичу. По этому для практического применения нужно использовать смещение, соответствующее часовому поясу Вашего места.
Назначение входа H см. комментарий внутри макроса.
Попутно были сделаны вспомогательные макросы, часть из них может быть использована не зависимо от Sun_Time
Может Юрий включит данный макрос в базу, если посчитает мой труд достойным для этого.
UPD
Сделал новую версия макроса SUN_TIME_v2.tpl
- Время на выходах толоько в сек
- Используются новые версии вспомогательных макросов
fMOD(v2) (остаток от деления для float)
Захват-3.png
FLOOR2(v2) (возвращает наибольшее ЦЕЛОЕ число, которое не больше, чем ВЕЩЕСТВЕННОЕ(float) X)
Захват-1.png
TO_FL(v2) (Конвертация целого со знаком в FLOAT)
Захват-2.png
Результат для Москвы на 10.01.2019
Захват-4.png
С сайта https://planetcalc.ru/300/
Захват-5.png
UPD2
Обновил версию макроса до SUN_TIME_v3.tpl
Изменения связанны с потенциальной ошибкой в макросе FLOOR2(v2)
Тк преобразование TO_INT для отрицательных FLOAT дает 0, то и функция FLOOR2 будет работать не правильно для отрицательного аргумента.
Захват-5.png
Скорей всего, что для данного применения макроса FLOOR2 отрицательных значений у аргумента не будет, но не хочется его в таком виде оставлять.
Новая редакция
FLOOR2(v3)
Захват-1.png
Макрос FLOOR2 используется в макросе fMOD, по этому fMOD получил новую редакцию
Захват-3.png
Вложения - архив с макросом и тестовый пример обновил.




Ответить с цитированием
