serafim 272 Опубликовано: 19 июня, 2019 (изменено) Бывает необходимость показать время работы или ожидания программы, которое составляет по несколько часов и смотреть что прошло 100500 секунд крайне не удобно, куда привычнее наблюдать в формате часов. Перекопав интернет на LUA ни чего не нашел, только на C# так что адаптировав оставлю примеры здесь, может кому и пригодится. Добавил варианты предложенные @BrightYC Перевод секунд в формат часов Скрытый текст timestamp = 100500 -- любое число в секундах print(os.date("%H:%M:%S", timestamp)) Скрытый текст local function sectotime(seconds) local m = math.floor(seconds / 60) local s = seconds % 60 local h = math.floor(m / 60) local m = m % 60 print("Ч: "..h.." М: "..m.." С: "..s) end sectotime(100500) -- секунд Показать сколько прошло времени от включения в формате часов Скрытый текст local computer = require("computer") print(os.date("%H:%M:%S", computer.uptime())) Скрытый текст local computer = require("computer") local term = require("term") local uptime = computer.uptime() local function pasttime() local seconds = math.ceil(computer.uptime()-uptime) local m = math.floor(seconds / 60) local s = seconds % 60 local h = math.floor(m / 60) local m = m % 60 term.write("Ч: "..h.." М: "..m.." С: "..s) end term.clear() while true do pasttime() os.sleep(1) term.clearLine() end Отсчет времени в формате часов Скрытый текст local term = require("term") local seconds = 120 --секунды term.clear() for i = seconds, 1, -1 do term.write(os.date("%H:%M:%S", i)) os.sleep(1) term.clearLine() end term.clear() print("время вышло") Скрытый текст local term = require("term") local function countdown(seconds) term.clear() for i = seconds, 1, -1 do local m = math.floor(i / 60) local s = i % 60 local h = math.floor(m / 60) local m = m % 60 term.write("осталось ".."Ч: "..h.." М: "..m.." С: "..s) os.sleep(1) term.clearLine() end term.clear() end countdown(120) -- секунды print("время вышло") Изменено 19 июня, 2019 пользователем serafim 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya 415 Опубликовано: 19 июня, 2019 Кек. Не нужно делать то, что уже написано=D timestamp = 0 while true do print(os.date("%H:%M:%S", timestamp) --timestamp - любое число в секундах timestamp = timestamp + 1 end >> 00:00:00 timestamp = timestamp + 1 >> 00:00:01 --И так далее... 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
serafim Автор темы 272 Опубликовано: 19 июня, 2019 (изменено) Норм В print добавь закрывающую скобку. Эмулятор OCEmu показывает три часа, хотя только открыл, видимо кастыли, щас на роботе гляну Всё норм, спасибо за простую реализацию Изменено 19 июня, 2019 пользователем serafim 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах