У меня есть код, который отслеживает время сотрудников. Он создает счетчик, показывающий сотруднику, как долго они были синхронизированы.
Это текущий код:
start_time = Time.parse(self.settings.first_clock_in)
total_seconds = Time.now - start_time
hours = (total_seconds/ 3600).to_i
minutes = ((total_seconds % 3600) / 60).to_i
seconds = ((total_seconds % 3600) % 60).to_i
Это отлично работает. Но поскольку время ограничено диапазоном 1970–2038 гг., Мы пытаемся заменить все время использования датой. Я не могу понять, как получить количество секунд между двумя DateTimes. Вычитание их приводит к Rational, который я не знаю, как интерпретировать, тогда как вычитание Times дает разницу в секундах.
ПРИМЕЧАНИЕ. Начиная с Ruby 1.9.2, жесткий предел времени снят. Однако время оптимизировано для значений между 1823-11-12 и 2116-02-20.