Přeskočit na obsah

Modul:Kalendar

Z Wikipedie, otevřené encyklopedie

Dokumentaci tohoto modulu lze vytvořit na stránceModul:Kalendar/Dokumentace

require('Module:No globals')

localp={}
localroot={}

localfunctionaddRow(row)
table.insert(root,row)
end

localfunctiongetMonthName(month)
return({"leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"})[month]
end

localfunctionisLeapYear(year)
returnyear%4==0and(year%100~=0oryear%400==0)
end

localfunctiongetDaysInMonth(month,year)
return(month==2andisLeapYear(year)and29)
or("\31\28\31\30\31\30\31\31\30\31\30\31"):byte(month)
end

localfunctiongetValue(args,key,default)
localvalue=args[key]
ifvalueandvalue~=''then
returnvalue
else
returndefault
end
end

functionp.main(frame)
localyear=tonumber(frame.args.year)
localmonth=tonumber(frame.args.month)
localmarkDay=tonumber(frame.args.markDay)or0

localheaderColor=getValue(frame.args,'headerColor','#C0C0C0')
localcolor=getValue(frame.args,'color','#DCDCDC')
localdayColor=getValue(frame.args,'dayColor','#FCD1C5')
localfloat=getValue(frame.args,'float','left')

localfirstWeekday=tonumber(os.date("%w",os.time{year=year,month=month,day=1}))
localmonthName=getMonthName(month)
localdaysInMonth=getDaysInMonth(month,year)

localprevMonth=(month+10)%12+1
localnextMonth=month%12+1
localprevMonthName=getMonthName(prevMonth)
localnextMonthName=getMonthName(nextMonth)
ifgetValue(frame.args,'prev-next','month')=='year-month'then
ifprevMonth==12then
prevMonthName=prevMonthName..' '..(year-1)
nextMonthName=nextMonthName..' '..year
elseifnextMonth==1then
prevMonthName=prevMonthName..' '..year
nextMonthName=nextMonthName..' '..(year+1)
else
prevMonthName=prevMonthName..' '..year
nextMonthName=nextMonthName..' '..year
end
end

addRow('{| class= "toccolours" style= "float:'..float..'; margin-left: 1em; text-align:center; width:150px; padding:0px; "cellpadding=2 cellspacing=0')
addRow('|- style= "background-color:'..headerColor..'; "')
addRow('|align=center| [['..prevMonthName..'| << ]]')
addRow("|colspan=\ "5\ "|'''[[ "..monthName.."]]'''")
addRow('|align=center| [['..nextMonthName..'| >> ]]')
addRow('|- style= "background:'..color..'; "')
addRow('|width= "14%" |Po')
addRow('|width= "14%" |Út')
addRow('|width= "14%" |St')
addRow('|width= "14%" |Čt')
addRow('|width= "14%" |Pá')
addRow('|width= "14%" |So')
addRow('|width= "14%" |Ne')
addRow('|-')

fori=1,(firstWeekday-1)%7do
addRow("|")
end

fori=1,daysInMonthdo
localtext="| [["..i.."."..monthName.."|"..i.."]]"
ifi==markDaythen
addRow('| style= "background-color:'..dayColor..'; "'..text)
else
addRow(text)
end
if(i+firstWeekday-1)%7==0then
addRow("|-")
end
end

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

returntable.concat(root,'\n')
end

returnp