Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
gettime возвращает время в мсек с запуска компьютера.
В Кибор оно возвращается как int
Тут нет long
Целый тип int имеет размер 4 байта (32 бита). Минимальное значение -2 147 483 648, максимальное значение 2 147 483 647.
Возвращаемое значение превысило границы положительного значения int и трактуется как отрицательное.
resident
Отправлено: 27 Декабря, 2023 - 11:00:33
Участник
Покинул форум
Сообщений всего: 72
Дата рег-ции: Янв. 2023
Репутация: 0
С ноля бы тогда снова считал. Ладно, это сам сделаю.
Zireael
Отправлено: 27 Декабря, 2023 - 11:05:04
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
Для таких случаев, когда комп не перезагружается, лучше использовать GetProcessTimes. Считать время с момента запуска кибор. Это поможет если перезапускать кибор чаще чем раз в 24 дня.
resident
Отправлено: 27 Декабря, 2023 - 11:28:07
Участник
Покинул форум
Сообщений всего: 72
Дата рег-ции: Янв. 2023
Репутация: 0
Kibor пишет:
gettime возвращает время в мсек с запуска компьютера.
В Кибор оно возвращается как int
Тут нет long
double есть (Добавление)
gettime(1) возвращает double, как вариант
Zireael
Отправлено: 27 Декабря, 2023 - 11:43:17
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
Цитата:
gettime(1) возвращает double, как вариант
И когда комп отработает 49 дней возникнет другая проблема, т. к. отсчёт начнётся сначала. Почитайте: timeGetTime
Kibor
Отправлено: 27 Декабря, 2023 - 11:43:55
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
resident пишет:
gettime(1) возвращает double, как вариант
Это где вы нашли? (Добавление)
Теоретически можно отслеживать когда gettime начнет выдавать отрицательное значение, переводить его в положительное начиная с 0. Когда пройдет круг опять будет выдавать с 0.
Но можно использовать другой подсчет. К примеру getlocaltime.
Секунду считать самой малой единицей.
Или проверять что вернула gettime и рассчитывать разницу и заносить ее в отдельный счетчик разделив на сколько угодно. Если вернула отрицательное, рассчитыват разницу между тем что было и что есть.
Zireael
Отправлено: 27 Декабря, 2023 - 11:54:04
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
Цитата:
gettime(1) возвращает double, как вариант
Это где вы нашли?
Имелось ввиду добавить такой вариант использования функции.
Лучше добавить функцию возвращающую время с момента запуска кибор.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.