<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sv">
	<id>https://samsynwiki.se/w/index.php?action=history&amp;feed=atom&amp;title=Modul%3AKalenderfunktioner</id>
	<title>Modul:Kalenderfunktioner - Versionshistorik</title>
	<link rel="self" type="application/atom+xml" href="https://samsynwiki.se/w/index.php?action=history&amp;feed=atom&amp;title=Modul%3AKalenderfunktioner"/>
	<link rel="alternate" type="text/html" href="https://samsynwiki.se/w/index.php?title=Modul:Kalenderfunktioner&amp;action=history"/>
	<updated>2026-05-05T00:44:05Z</updated>
	<subtitle>Versionshistorik för denna sida på wikin</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://samsynwiki.se/w/index.php?title=Modul:Kalenderfunktioner&amp;diff=1057&amp;oldid=prev</id>
		<title>Sara Mörtsell (WMSE): 1 version importerades</title>
		<link rel="alternate" type="text/html" href="https://samsynwiki.se/w/index.php?title=Modul:Kalenderfunktioner&amp;diff=1057&amp;oldid=prev"/>
		<updated>2018-04-23T15:07:48Z</updated>

		<summary type="html">&lt;p&gt;1 version importerades&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny sida&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
 veckostart, ger datum för första dagen (måndagen) en viss vecka ett visst år&lt;br /&gt;
 &lt;br /&gt;
 parametrar&lt;br /&gt;
 ==========&lt;br /&gt;
 1: årtal (yyyy)&lt;br /&gt;
 2: veckonummer (w)&lt;br /&gt;
 3: formateringsinformation, om ingen formateringsinformation anges används fås resultatet med formatet &amp;quot;Vecka w yyyy börjar yyyy-mm-dd&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 exempel&lt;br /&gt;
 =======&lt;br /&gt;
 {{#invoke:Kalenderfunktioner|veckostart|2015|14}}&lt;br /&gt;
 ger resultatet&lt;br /&gt;
 Vecka 14 2015 börjar 2015-03-30&lt;br /&gt;
&lt;br /&gt;
 {{#invoke:Kalenderfunktioner|veckostart|2015|14|%Y-%m-%d}}&lt;br /&gt;
 ger resultatet&lt;br /&gt;
  2015-03-30&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
p.veckostart = function(frame)&lt;br /&gt;
  local y = tonumber(frame.args[1]) or 2015&lt;br /&gt;
  local w = tonumber(frame.args[2]) or 1&lt;br /&gt;
  local f = frame.args[3] or &amp;#039;Vecka &amp;#039;..w..&amp;#039; &amp;#039;..y..&amp;#039; börjar %Y-%m-%d&amp;#039;&lt;br /&gt;
  local t0 = os.time{year=y, month=1, day=1}&lt;br /&gt;
  local w0 = os.date(&amp;quot;*t&amp;quot;, t0)[&amp;#039;wday&amp;#039;]+1&lt;br /&gt;
  if (os.date(&amp;quot;*t&amp;quot;,t0 + 86400*(w*7-1-w0 % 7))[&amp;#039;year&amp;#039;]&amp;gt;y) or (w&amp;lt;1) then&lt;br /&gt;
     return &amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Fel veckonummer!&amp;lt;/span&amp;gt; (det finns ingen vecka med nummer &amp;#039;..w.. &amp;#039; som börjar under &amp;#039; .. y .. &amp;#039;).&amp;#039;&lt;br /&gt;
  end&lt;br /&gt;
  return os.date(f,t0+86400*(w*7-4-w0 % 7))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
 nteveckodag, returnerar datum för den n:te veckodagen av angiven typ i angiven månad och angivet år&lt;br /&gt;
&lt;br /&gt;
 parametrar &lt;br /&gt;
 ==========&lt;br /&gt;
 1 (obligatorisk): år, till exempel 2015&lt;br /&gt;
 2 (obligatorisk): månad, till exempel 11&lt;br /&gt;
 3 (obligatorisk): veckodag 1-7 (1=söndag, 2=måndag, ..., 7=lördag), till exempel 5 (torsdag)&lt;br /&gt;
 4 (obligatorisk): n, till exempel 4 &lt;br /&gt;
&lt;br /&gt;
 exempel&lt;br /&gt;
 =======&lt;br /&gt;
 {{#invoke:Kalenderfunktioner|nteveckodag|2015|11|5|4}}&lt;br /&gt;
 ger resultatet&lt;br /&gt;
 26&lt;br /&gt;
 Den fjärde torsdagen i november månad 2015, Thanksgiving i USA, infaller alltså den 26 november.&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
p.nteveckodag = function(frame)&lt;br /&gt;
   local y = tonumber(frame.args[1])&lt;br /&gt;
   local m = tonumber(frame.args[2])&lt;br /&gt;
   local w = tonumber(frame.args[3])&lt;br /&gt;
   local n = tonumber(frame.args[4])&lt;br /&gt;
   local t0 = os.time{year=y, month=m, day=1}&lt;br /&gt;
   local w0 = os.date(&amp;quot;*t&amp;quot;,t0)[&amp;#039;wday&amp;#039;]&lt;br /&gt;
   return tonumber(os.date(&amp;quot;%d&amp;quot;,t0+86400*(n*7+(w-w0)%7 -7)))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
 emanad, returnerar indata med stavning för månad som förekommer med svensk stavning översatt till engelska. &lt;br /&gt;
 Eventuell versaliering av svenska stavningen ignoreras, såväl mars som Mars och maRS översätts till March.&lt;br /&gt;
 Den tänkta användningen är att kompensera för att #time inte kan hantera de fyra månaderna mars, juni, juli och augusti med svensk stavning. Se mall Date.&lt;br /&gt;
&lt;br /&gt;
 Begränsningar:&lt;br /&gt;
 - Endast strängar med högst en förekomst av månad kan hanteras.&lt;br /&gt;
 - Resten av strängen konverteras till gemener som en bieffekt. Det är normalt bara siffror.&lt;br /&gt;
&lt;br /&gt;
 parametrar &lt;br /&gt;
 ==========&lt;br /&gt;
 1 (obligatorisk): en sträng med högst ett månadsnamn stavat på svenska &lt;br /&gt;
&lt;br /&gt;
 exempel&lt;br /&gt;
 =======&lt;br /&gt;
 {{#invoke:Kalenderfunktioner|emanad|27 mars 2016}}&lt;br /&gt;
 ger resultatet&lt;br /&gt;
 27 March 2016&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
function p.emanad(frame)&lt;br /&gt;
	local table manader = { januari=&amp;#039;January&amp;#039;, februari = &amp;#039;February&amp;#039;, mars = &amp;#039;March&amp;#039;, april = &amp;#039;April&amp;#039;, maj = &amp;#039;May&amp;#039;, juni = &amp;#039;June&amp;#039;, juli = &amp;#039;July&amp;#039;, augusti = &amp;#039;August&amp;#039;, september = &amp;#039;September&amp;#039;, oktober = &amp;#039;October&amp;#039;, november = &amp;#039;November&amp;#039;, december = &amp;#039;December&amp;#039; }&lt;br /&gt;
	local manad = string.lower(frame.args[1] or &amp;#039;&amp;#039;)&lt;br /&gt;
	local nymanad = &amp;#039;&amp;#039;&lt;br /&gt;
	for s, e in pairs(manader) do&lt;br /&gt;
		nymanad = mw.ustring.gsub(manad,s,e)&lt;br /&gt;
		if not (nymanad == manad) then return nymanad end&lt;br /&gt;
	end&lt;br /&gt;
	return manad&lt;br /&gt;
end	&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
   Paskdagsdatum, returnerar datum för Påskdagen för ett år eller en följd av år&lt;br /&gt;
&lt;br /&gt;
   Parametrar &lt;br /&gt;
   ==========&lt;br /&gt;
   year   (frivillig): anger det första år som datum önskas för. year måste ligga mellan 1800 och 2099. (Standardvärde = innevarande år)&lt;br /&gt;
   year2  (frivillig): det sista år som datum önskas för. year2 måste ligga mellan 1800 och 2099. (Standarvärde = samma som första året)&lt;br /&gt;
   länkar (frivillig): om parametern anges så fås wikilänkar till datum och till årtal. (Standardvärde = inga länkar)&lt;br /&gt;
   prefix (frivillig): text som föregås varje datum. (Standardvärde = inget prefix)&lt;br /&gt;
   suffix (frivillig): text som följer efter varje datum. (Standardväde = inget suffix)&lt;br /&gt;
   nl     (frivillig): antalet radmatningar efter varje datum. (Standardvärde = 0)&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
function p.Paskdagsdatum(frame)&lt;br /&gt;
	local res = &amp;#039;&amp;#039; &lt;br /&gt;
	local year1 = tonumber(frame.args[&amp;#039;year&amp;#039;] or os.date(&amp;#039;!*t&amp;#039;)[&amp;#039;year&amp;#039;])&lt;br /&gt;
	local year2 = tonumber(frame.args[&amp;#039;year2&amp;#039;] or year1)&lt;br /&gt;
	local prefix = frame.args[&amp;#039;prefix&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local suffix = frame.args[&amp;#039;suffix&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local nl = tonumber(frame.args[&amp;#039;nl&amp;#039;] or &amp;#039;0&amp;#039;)&lt;br /&gt;
	local links = frame.args[&amp;#039;länkar&amp;#039;]&lt;br /&gt;
	if (year1&amp;lt;1800) or (year1&amp;gt;2099) or (year2&amp;lt;1800) or (year2&amp;gt;2099) then return &amp;#039;Felaktigt parameter värde i funktionsanrop. År måste vara från 1800 till 2099!&amp;#039; end&lt;br /&gt;
	for year=year1,year2 do&lt;br /&gt;
		local day, month = 0, &amp;#039;&amp;#039;&lt;br /&gt;
		if (year==1802) then day, month = 25, &amp;#039;april&amp;#039; end&lt;br /&gt;
		if (year==1805) then day, month = 21, &amp;#039;april&amp;#039; end&lt;br /&gt;
		if (year==1818) then day, month = 29, &amp;#039;mars&amp;#039; end&lt;br /&gt;
		if (day==0) then&lt;br /&gt;
			local a, b, c = math.fmod(year,19), math.fmod(year,4), math.fmod(year,7)&lt;br /&gt;
	    	local m, n = 23,4&lt;br /&gt;
	    	if (year&amp;gt;=1900) then m, n = 24, 5 end&lt;br /&gt;
	    	local d = math.fmod(19*a+m,30)&lt;br /&gt;
	    	local e = math.fmod(2*b+4*c+6*d+n,7)&lt;br /&gt;
	   		day = 22+d+e&lt;br /&gt;
	    	month = &amp;#039;mars&amp;#039;&lt;br /&gt;
	    	if ((d+e)&amp;gt;9) then day, month = d+e-9, &amp;#039;april&amp;#039; end&lt;br /&gt;
	    	if (day==26) and (month==&amp;#039;april&amp;#039;) then day = 19 end&lt;br /&gt;
	    	if (day==25) and (month==&amp;#039;april&amp;#039;) and (d==28) and (e==6) and (math.fmod(11*m+11,30)&amp;lt;19) then day=18 end&lt;br /&gt;
    	end&lt;br /&gt;
		if (links) then &lt;br /&gt;
			res = res .. prefix .. &amp;#039;[[&amp;#039; .. day .. &amp;#039; &amp;#039; .. month .. &amp;#039;]] [[&amp;#039; .. year .. &amp;#039;]]&amp;#039; .. suffix &lt;br /&gt;
		else&lt;br /&gt;
			res = res .. prefix .. day .. &amp;#039; &amp;#039; .. month .. &amp;#039; &amp;#039; .. year .. suffix&lt;br /&gt;
		end&lt;br /&gt;
		for i=1,nl do res = res .. &amp;#039;\n&amp;#039; end&lt;br /&gt;
	end&lt;br /&gt;
	return res&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Sara Mörtsell (WMSE)</name></author>
	</entry>
</feed>