Module:Systime: Difference between revisions

From Post-Self
m (Implement 'frame')
m (Add missing spacing.)
 
(10 intermediate revisions by the same user not shown)
Line 4: Line 4:


function p.toSystime(frame)
function p.toSystime(frame)
year, month, day, hour, min, sec = frame.args
year = frame.args.year
time = os.time({year = year, month = month ~= nil and month or 1, day = day ~= nil and day or 1, hour = hour, min = min, sec = sec})
month = frame.args.month
day = frame.args.day
hour = frame.args.hour
min = frame.args.min
sec = frame.args.sec
 
time = os.time({year = year, month = month ~= "" and month or 1, day = day ~= "" and day or 1, hour = hour, min = min, sec = sec})
date = os.date("*t", time)
date = os.date("*t", time)
yday = month ~= nil and day ~= nil and "+" .. date.yday or ""
yday = month ~= "" and day ~= "" and "+" .. date.yday or ""
tdec = date.hour / 24 + date.min / 60 / 24 + date.sec / 60 / 60 / 24
tdec = date.hour / 24 + date.min / 60 / 24 + date.sec / 60 / 60 / 24
tdec = hour ~= nil and string.sub(math.floor(tdec * 100 + 0.5) / 100, 2) or ""
tdec = hour ~= "" and string.sub(math.floor(tdec * 100 + 0.5) / 100, 2) or ""
year = date.year - 2124
year = date.year - 2124
return year .. yday .. tdec
return year .. yday .. tdec
end
function p.toTimestamp(frame)
year = frame.args.year
month = frame.args.month
day = frame.args.day
hour = frame.args.hour
min = frame.args.min
sec = frame.args.sec
time = os.time({year = year, month = month ~= "" and month or 1, day = day ~= "" and day or 1, hour = hour, min = min, sec = sec})
return (month ~= "" and day ~= "" and os.date("%Y %B %d", time) or os.date("%Y", time)) .. (hour ~= "" and os.date(" %H:%M", time) or "")
end
end


return p
return p

Latest revision as of 18:59, 3 February 2024

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

-- This module implements {{Systime}}.

local p = {}

function p.toSystime(frame)
	year = frame.args.year
	month = frame.args.month
	day = frame.args.day
	hour = frame.args.hour
	min = frame.args.min
	sec = frame.args.sec

	time = os.time({year = year, month = month ~= "" and month or 1, day = day ~= "" and day or 1, hour = hour, min = min, sec = sec})
	date = os.date("*t", time)
	yday = month ~= "" and day ~= "" and "+" .. date.yday or ""
	tdec = date.hour / 24 + date.min / 60 / 24 + date.sec / 60 / 60 / 24
	tdec = hour ~= "" and string.sub(math.floor(tdec * 100 + 0.5) / 100, 2) or ""
	year = date.year - 2124
	return year .. yday .. tdec
end

function p.toTimestamp(frame)
	year = frame.args.year
	month = frame.args.month
	day = frame.args.day
	hour = frame.args.hour
	min = frame.args.min
	sec = frame.args.sec

	time = os.time({year = year, month = month ~= "" and month or 1, day = day ~= "" and day or 1, hour = hour, min = min, sec = sec})

	return (month ~= "" and day ~= "" and os.date("%Y %B %d", time) or os.date("%Y", time)) .. (hour ~= "" and os.date(" %H:%M", time) or "")
end

return p