Modul:VerbalDate
Dokumentaci tohoto modulu lze vytvořit na stránce Nápověda:Modul:VerbalDate
-- @brief
-- Handling of verbal dates.
--
-- @details
-- Handles the verbal dates.
-- Currently supports
-- * month names
-- * month genitives
--
-- @author
-- [[meta:User:Danny B.]]
local VerbalDate = {}
----------------------------------------
VerbalDate.months = {
{
name = "leden",
genitive = "ledna"
}, {
name = "únor",
genitive = "února"
}, {
name = "březen",
genitive = "března"
}, {
name = "duben",
genitive = "dubna"
}, {
name = "květen",
genitive = "května"
}, {
name = "červen",
genitive = "června"
}, {
name = "červenec",
genitive = "července"
}, {
name = "srpen",
genitive = "srpna"
}, {
name = "září",
genitive = "září"
}, {
name = "říjen",
genitive = "října"
}, {
name = "listopad",
genitive = "listopadu"
}, {
name = "prosinec",
genitive = "prosince"
}
}
-- @brief
-- Creates the datestamp.
--
-- @return
-- String Datestamp (YYYY-MM-DD)
function VerbalDate.toDatestamp()
local output = ""
local _, day, monthname, year, month
_, _, day, monthname, year = string.find( mw.title.getCurrentTitle().text, "(%d+)%. ?(.-) (%d+)" )
if ( day and monthname and year ) then
for index, value in ipairs( VerbalDate.months ) do
if ( value.name == monthname or value.genitive == monthname ) then
month = index
end
if ( month ) then
output = string.format( "%04d-%02d-%02d", year, month, day)
end
end
end
return output
end
-- @brief
-- Creates the (midnight) timestamp.
--
-- @return
-- String Timestamp (YYYYMMDD000000)
function VerbalDate.toTimestamp()
local output = ""
local _, day, monthname, year, month
_, _, day, monthname, year = string.find( mw.title.getCurrentTitle().text, "(%d+)%. ?(.-) (%d+)" )
if ( day and monthname and year ) then
for index, value in ipairs( VerbalDate.months ) do
if ( value.name == monthname or value.genitive == monthname ) then
month = index
end
if ( month ) then
output = string.format( "%04d%02d%02d000000", year, month, day)
end
end
end
return output
end
----------------------------------------
return VerbalDate