Во вложении сам макрос 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
Изменения связанны с потенциальной ошибкой в макросе FLOOR2(v2)
Тк преобразование TO_INT для отрицательных FLOAT дает 0, то и функция FLOOR2 будет работать не правильно для отрицательного аргумента. Захват-5.png
Скорей всего, что для данного применения макроса FLOOR2 отрицательных значений у аргумента не будет, но не хочется его в таком виде оставлять.
Новая редакция
FLOOR2(v3) Захват-1.png
Макрос FLOOR2 используется в макросе fMOD, по этому fMOD получил новую редакцию Захват-3.png
Вложения - архив с макросом и тестовый пример обновил.
Последний раз редактировалось Мимоход; 27.06.2019 в 14:33.