Call of Duty Esports Wiki
[checked revision][checked revision]
(Created page with "local util_args = require("Module:ArgsUtil") local util_time = require("Module:TimeUtil") local util_vars = require("Module:VarsUtil") local Class = require('Module:Class').C...")
 
No edit summary
 
Line 3: Line 3:
 
local util_vars = require("Module:VarsUtil")
 
local util_vars = require("Module:VarsUtil")
   
−
local Class = require('Module:Class').Class
+
local Seconds = require('Module:TimedeltaAbstract'):extends()
 
local Display = require('Module:TimedeltaAbstract'):extends()
−  
−
local Seconds = Class(require('Module:TimedeltaAbstract'))
 
local Display = Class(require('Module:TimedeltaAbstract'))
 
   
 
local SECONDS_PER_DAY = 24 * 60 * 60
 
local SECONDS_PER_DAY = 24 * 60 * 60
Line 34: Line 32:
   
 
function p.test(frame)
 
function p.test(frame)
−
local args = util_args.merge(true)
+
local args = util_args.merge()
 
s = args.s
 
s = args.s
 
e = args.e
 
e = args.e

Latest revision as of 15:15, 4 August 2020

Documentation for this module may be created at Module:TimedeltaUtil/doc

local util_args = require("Module:ArgsUtil")
local util_time = require("Module:TimeUtil")
local util_vars = require("Module:VarsUtil")

local Seconds = require('Module:TimedeltaAbstract'):extends()
local Display = require('Module:TimedeltaAbstract'):extends()

local SECONDS_PER_DAY = 24 * 60 * 60
Display.outputUnknown = '??'
Seconds.outputUnknown = -1
Display.fuzzyPrefix = '≈'
Seconds.fuzzyPrefix = ''
Display.lessThanOneYear = '<1y'
Seconds.lessThanOneYear = 365 * SECONDS_PER_DAY
Display.lessThan = '≤'
Seconds.lessThan = ''
Display.clarifyApprox = '??'
Seconds.clarifyApprox = ''

function Display:lessThanOneMonth(days) return '<1m' end
function Seconds:lessThanOneMonth(days)
	return days * SECONDS_PER_DAY
end

function Seconds:approxDurationExact(sDate, eDate)
	return os.difftime(util_time.unix(eDate), util_time.unix(sDate))
end

function Seconds:addFuzzyPrefixIffNeeded(ret) return ret end

local p = {}

function p.test(frame)
	local args = util_args.merge()
	s = args.s
	e = args.e
	return ('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td>'):format(
		args.s,
		args.e,
		Display:main(args.s, args.e, util_args.castAsBool(args.fuzzy)),
		Seconds:main(args.s, args.e, util_args.castAsBool(args.fuzzy))
	)
end

function p.approxDurationDisplay(s, e, fuzzy)
	return Display:main(s, e, fuzzy)
end

function p.approxDurationSeconds(s, e, fuzzy)
	return Seconds:main(s, e, fuzzy)
end

function p.approxDurationDays(s, e, fuzzy)
	return Seconds:main(s, e, fuzzy) / SECONDS_PER_DAY
end

return p