PDA

Просмотр полной версии : Целое число преобразовать в календарную дату



usatyi
28.07.2026, 11:06
Добрый день
В пр-103 имеем дату в виде целого числа (838550788) и передаем ее в панель СП-307
Вопрос как это целое число преобразовать на стороне панели СП-307 в читаемый формат (год, месяц, число, час, минута, секунда)

petera
28.07.2026, 11:21
Добрый день
В пр-103 имеем дату в виде целого числа (838550788) и передаем ее в панель СП-307
Вопрос как это целое число преобразовать на стороне панели СП-307 в читаемый формат (год, месяц, число, час, минута, секунда)

У меня в библиотеке ГМ есть готовые дисплеи для UNIX time
89886

Например
89887

ЗЫ
У меня используется "стандартная эпоха" UNIX - время в секундах от 00:00:00 1 января 1970 года.
В ПР103 вроде нестандартное UNIX время - не от 1970, а от 2000 года
Значит надо константу прибавить - разницу между 2000 г и 1970 г

ЗЫ.
Константа, которую нужно прибавить к uTime равна 946674000
Лучше ее прибавить в самой ПР103, а результат отправить(принять) в СП300

ЗЫ
Для выбора шрифта для дисплеев из библиотеки используйте кнопку "F" на панели инструментов
89889

usatyi
28.07.2026, 11:24
Спасибо за быстрый ответ
тогда вопрос ... как и откуда скачать Вашу библиотеку глобальных макросов

usatyi
28.07.2026, 11:26
и ещё я так понимаю нужен будет расширенный режим конфигуратора

petera
28.07.2026, 11:32
и ещё я так понимаю нужен будет расширенный режим конфигуратора

Расширенный режим для работы с библиотекой ГМ не нужен.
Ссылка на библиотеку у меня в подписи

usatyi
28.07.2026, 11:36
Расширенный режим для работы с библиотекой ГМ не нужен.
Ссылка на библиотеку у меня в подписи

сори слепой
спасибо буду разбираться

petera
28.07.2026, 11:47
Константа, которую нужно прибавить к uTime равна 946674000
Лучше ее прибавить в самой ПР103, а результат отправить(принять) в СП300

petera
28.07.2026, 11:52
ЗЫ
Для выбора шрифта для дисплеев из библиотеки используйте кнопку "F" на панели инструментов
89889

usatyi
28.07.2026, 12:41
вроде разобрался
ОГРОМНОЕ спасибо за Ваш труд

kondor3000
28.07.2026, 13:32
Добрый день
В пр-103 имеем дату в виде целого числа (838550788) и передаем ее в панель СП-307
Вопрос как это целое число преобразовать на стороне панели СП-307 в читаемый формат (год, месяц, число, час, минута, секунда)

Часы в панели идут гораздо точнее, чем в ПР103, кроме того проще корректировать время в панели. Поэтому правильнее передавать дату и время из панели в ПР.

usatyi
28.07.2026, 14:18
Часы в панели идут гораздо точнее, чем в ПР103, кроме того проще корректировать время в панели. Поэтому правильнее передавать дату и время из панели в ПР.

Да полностью согласен буду именно так делать

usatyi
28.07.2026, 15:09
Возник еще вопрос/недопонимание с моей стороны
на СП - 307 в режиме симуляции прибавляет +1 месяц ???
помогите разобраться

kondor3000
28.07.2026, 15:42
Возник еще вопрос/недопонимание с моей стороны
на СП - 307 в режиме симуляции прибавляет +1 месяц ???
помогите разобраться

Возьмите ФБ даты -времени для ПР103-205 с 2000 года ( 3 пример) и проверьте
https://owen.ru/forum/showthread.php?t=40116&p=444236&viewfull=1#post444236

usatyi
28.07.2026, 15:57
все равно +1 месяц
и еще только заметил -3 часа

usatyi
28.07.2026, 16:21
без константы все равно +1 месяц

petera
28.07.2026, 17:38
Возник еще вопрос/недопонимание с моей стороны
на СП - 307 в режиме симуляции прибавляет +1 месяц ???
помогите разобраться

Это особенности работы эмулятора
При загрузке в панель
89898

petera
28.07.2026, 17:42
без константы все равно +1 месяц

Оно же в панели
89899

petera
28.07.2026, 17:56
все равно +1 месяц
и еще только заметил -3 часа

Панель и он-лайн калькулятор утверждают, что 1785242710 ---> 2026-07-28 12:45:10

89900

89901

petera
28.07.2026, 18:17
В эмуляторе некоторые арифметические операции выполняются неверно
Например, в панели при целочисленном делении остаток отбрасывается, и это правильно
А в эмуляции результат деления целых чисел округляется
в эмуляторе
3/2 = 2
7/2 = 4
в панели
3/2 = 1
7/2 = 3

Тестовый проект
89902

89903

89904

Из-за этого одна из функций работы с UNIX работает в эмеляторе неправильно
не помню уже какая
89905

kondor3000
28.07.2026, 20:23
все равно +1 месяц
и еще только заметил -3 часа

Да, в эмуляции месяц не правильно, но с часами и минутами всё в порядке 89906
секунды не правильно, потому что забивал число руками.

usatyi
29.07.2026, 07:04
Спасибо за пояснения
Наверное хорошо что такой разбор ситуации сделали
100 % у таких как я начинающих будут возникать схожие вопросы ... теперь есть готовые ответы
Всем спасибо