მოდული:კალენდარი: განსხვავება გადახედვებს შორის

მასალა ვიკიპედიიდან — თავისუფალი ენციკლოპედია
[შემოწმებული ვერსია][შემოწმებული ვერსია]
შიგთავსი ამოიშალა შიგთავსი დაემატა
No edit summary
No edit summary
ხაზი 2: ხაზი 2:


local p = {}
local p = {}
local root = {}

local function addRow(row)
table.insert(root, row)
end


local function getMonthNameInGeorgian(month)
local function getMonthNameInGeorgian(month)
return ({"იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"})[month]
return ({"იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"})[month]
end;
end


local function isLeapYear(year)
local function isLeapYear(year)
ხაზი 19: ხაზი 24:
local year = tonumber(frame.args.year)
local year = tonumber(frame.args.year)
local month = tonumber(frame.args.month)
local month = tonumber(frame.args.month)
local headerColor = (frame.args.headerColor) and frame.args.headerColor or "#C0C0C0"
local color = (frame.args.color) and frame.args.color or "#DCDCDC"

local firstWeekday = tonumber(os.date("%w",os.time{year=year, month=month, day=1}))
local firstWeekday = tonumber(os.date("%w",os.time{year=year, month=month, day=1}))
local monthName = getMonthNameInGeorgian(month)
local monthName = getMonthNameInGeorgian(month)
local prevMonthName = getMonthNameInGeorgian((month - 2) % 12 + 1)
local nextMonthName = getMonthNameInGeorgian(month % 12 + 1)
local daysInMonth = getDaysInMonth(month, year)
local daysInMonth = getDaysInMonth(month, year)
addRow("{| class=\"infobox\" style=\"float:right; margin-left: 1em; text-align:center;\" cellpadding=2 cellspacing=0\n")
addRow("|- style=\"background:" .. headerColor .. ";\"\n")
addRow("|align=center| [[" .. prevMonthName .. "| << ]]\n")
addRow("|colspan=\"5\"|'''[[" .. monthName .. "]]'''\n")
addRow("|align=center| [[" .. nextMonthName .. "| >> ]]\n")
addRow("|- style=\"background:" .. color .. ";\"\n")
addRow("|width=\"14%\"|ორშ\n")
addRow("|width=\"14%\"|სამ\n")
addRow("|width=\"14%\"|ოთხ\n")
addRow("|width=\"14%\"|ხუთ\n")
addRow("|width=\"14%\"|პარ\n")
addRow("|width=\"14%\"|შაბ\n")
addRow("|width=\"14%\"|კვი\n")
addRow("|-\n")


for i = 1, firstWeekday - 1 do
local res = "{| class=\"infobox\" style=\"float:right; margin-left: 1em; text-align:center;\" cellpadding=2 cellspacing=0\n"
addRow("|\n")

end
res = res .. "|- style=\"background:#C0C0C0;\"\n"
res = res .. "|align=center| [[" .. getMonthNameInGeorgian((month - 2) % 12 + 1) .. "| << ]]\n"
res = res .. "|colspan=\"5\"|'''[[" .. monthName .. "]]'''\n"
res = res .. "|align=center| [[" .. getMonthNameInGeorgian(month % 12 + 1) .. "| << ]]\n"
res = res .. "|- style=\"background:#DCDCDC;\"\n"
res = res .. "|width=\"14%\"|ორშ\n"
res = res .. "|width=\"14%\"|სამ\n"
res = res .. "|width=\"14%\"|ოთხ\n"
res = res .. "|width=\"14%\"|ხუთ\n"
res = res .. "|width=\"14%\"|პარ\n"
res = res .. "|width=\"14%\"|შაბ\n"
res = res .. "|width=\"14%\"|კვი\n"
res = res .. "|-\n"

for i = 1, firstWeekday - 1 do
res = res .. "|\n"
end

for i = 1, daysInMonth do
res = res .. "|[[" .. i .. " " .. monthName .. "|" .. i .. "]]\n"
res = res .. ((i + firstWeekday - 1) % 7 == 0 and "|-\n" or "")
end


for i = 1, daysInMonth do
addRow("|[[" .. i .. " " .. monthName .. "|" .. i .. "]]\n")
addRow(((i + firstWeekday - 1) % 7 == 0 and "|-\n" or ""))
end


res = res .. "|- style=\"background:#DCDCDC;\"\n"
addRow("|- style=\"background:" .. color .. ";\"\n")
res = res .. "|colspan=\"7\"|'''[[" .. year .. "]]'''\n"
addRow("|colspan=\"7\"|'''[[" .. year .. "]]'''\n")
addRow("|}")
res = res .. "|}"


return res
return table.concat(root)
end
end



04:26, 22 ივლისი 2018-ის ვერსია

შეგიძლიათ შექმნათ დოკუმენტაცია ამ მოდულისათვის: მოდული:კალენდარი/ინფო

require('Module:No globals')

local p = {}
local root = {}

local function addRow(row)
	table.insert(root, row)
end

local function getMonthNameInGeorgian(month) 
	return ({"იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"})[month]
end

local function isLeapYear(year)
    return year % 4 == 0 and (year % 100 ~= 0 or year % 400 == 0)
end

local function getDaysInMonth(month, year)
    return month == 2 and isLeapYear(year) and 29
           or ("\31\28\31\30\31\30\31\31\30\31\30\31"):byte(month)
end

function p.main(frame)
	local year = tonumber(frame.args.year)
	local month = tonumber(frame.args.month)
	local headerColor = (frame.args.headerColor) and frame.args.headerColor or "#C0C0C0" 
	local color = (frame.args.color) and frame.args.color or "#DCDCDC"

	local firstWeekday = tonumber(os.date("%w",os.time{year=year, month=month, day=1}))
	local monthName = getMonthNameInGeorgian(month)
	local prevMonthName = getMonthNameInGeorgian((month - 2) % 12 + 1)
	local nextMonthName = getMonthNameInGeorgian(month % 12 + 1)
	local daysInMonth = getDaysInMonth(month, year)
	 
	addRow("{| class=\"infobox\" style=\"float:right; margin-left: 1em; text-align:center;\"  cellpadding=2 cellspacing=0\n")
	addRow("|- style=\"background:" .. headerColor .. ";\"\n")
	addRow("|align=center|  [[" .. prevMonthName .. "|  << ]]\n")
	addRow("|colspan=\"5\"|'''[[" .. monthName .. "]]'''\n")
	addRow("|align=center|  [[" .. nextMonthName .. "|  >> ]]\n")
	addRow("|-  style=\"background:" .. color .. ";\"\n")
	addRow("|width=\"14%\"|ორშ\n")
	addRow("|width=\"14%\"|სამ\n")
	addRow("|width=\"14%\"|ოთხ\n")
	addRow("|width=\"14%\"|ხუთ\n")
	addRow("|width=\"14%\"|პარ\n")
	addRow("|width=\"14%\"|შაბ\n")
	addRow("|width=\"14%\"|კვი\n")
	addRow("|-\n")

	for i = 1, firstWeekday - 1 do
		addRow("|\n")
	end

	for i = 1, daysInMonth do
		addRow("|[[" .. i .. " " .. monthName .. "|" .. i .. "]]\n") 
		addRow(((i + firstWeekday - 1) % 7 == 0 and "|-\n" or ""))
	end

	addRow("|-  style=\"background:" .. color .. ";\"\n")
	addRow("|colspan=\"7\"|'''[[" .. year .. "]]'''\n")
	addRow("|}")

	return table.concat(root)
end

return p