Moduł:Data

Z Wikinews, wolnego źródła informacji.

Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Data/opis

local p = {}

local monthToNames = {
	"stycznia", "lutego", "marca", "kwietnia", "maja", "czerwca",
	"lipca", "sierpnia", "września", "października", "listopada", "grudnia"
}
local monthIndices = {
	["stycznia"] = 1,
	["lutego"] = 2,
	["marca"] = 3,
	["kwietnia"] = 4,
	["maja"] = 5,
	["czerwca"] = 6,
	["lipca"] = 7,
	["sierpnia"] = 8,
	["września"] = 9,
	["października"] = 10,
	["listopada"] = 11,
	["grudnia"] = 12
}

function parseDate(dateText)
	local d, m, y = mw.ustring.match(dateText, "(%d+) (%w+) (%d+)")
	return os.time({
		["day"] = d or os.date("%d"),
		["month"] = monthIndices[m] or os.date("%m"),
		["year"] = y or os.date("%Y")
	})
end

function addDays(baseline, days)
	local todayTime = parseDate(baseline)
	local yesterdayTime = todayTime + days * 86400 -- 24 * 60 * 60s
	
	local lang = mw.getContentLanguage()
	return lang:formatDate('j xg Y', os.date('%Y-%m-%d', yesterdayTime))
end

function p.poprzedni(frame)
	local today = mw.title.getCurrentTitle().text
	return addDays(today, -1)
end

function p.nastepny(frame)
	local today = mw.title.getCurrentTitle().text
	return addDays(today, 1)
end

return p