Advertisement
mathiaas

timer

Apr 27th, 2024 (edited)
821
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.09 KB | None | 0 0
  1. Timer = {}
  2. Timer.__index = Timer
  3.  
  4. function Timer.new()
  5.     local self = setmetatable({}, Timer)
  6.     self:reset()
  7.     return self
  8. end
  9.  
  10.  
  11. function Timer:start()
  12.     self.startTime = os.time()
  13.     self.startDay = os.day()
  14.     self.endTime = nil
  15.     self.endDay = nil
  16. end
  17.  
  18.  
  19. function Timer:stop()
  20.     self.endTime = os.time()
  21.     self.endDay = os.day()
  22.     self.elapsedDay = self.endDay - self.startDay
  23.  
  24.     if self.elapsedDay == 0 then
  25.         self.elapsedTime = (self.endTime - self.startTime) / 0.02
  26.     else
  27.         local timeToMidnight = (24.0 - self.startTime) / 0.02  -- Time from start to 00:00 of the next day
  28.         local timeFromMidnight = self.endTime / 0.02            -- Time from 00:00 to end time
  29.         local fullDaysTicks = (self.elapsedDay - 1) * 24.0     -- Full days in ticks
  30.         self.elapsedTime = timeToMidnight + timeFromMidnight + (fullDaysTicks / 0.02)
  31.    
  32.     end
  33. end
  34.  
  35.  
  36. function Timer:reset()
  37.     self.startTime = nil
  38.     self.startDay = nil
  39.     self.endTime = nil
  40.     self.endDay = nil
  41.     self.elapsedDay = nil
  42.     self.elapsedTime = nil
  43. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement