<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.s-bou.com/index.php?action=history&amp;feed=atom&amp;title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%3AScheduled</id>
	<title>モジュール:Scheduled - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.s-bou.com/index.php?action=history&amp;feed=atom&amp;title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%3AScheduled"/>
	<link rel="alternate" type="text/html" href="https://wiki.s-bou.com/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Scheduled&amp;action=history"/>
	<updated>2026-04-04T08:52:27Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.36.2</generator>
	<entry>
		<id>https://wiki.s-bou.com/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Scheduled&amp;diff=125&amp;oldid=prev</id>
		<title>Administrator: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://wiki.s-bou.com/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Scheduled&amp;diff=125&amp;oldid=prev"/>
		<updated>2021-10-22T16:06:48Z</updated>

		<summary type="html">&lt;p&gt;1版 をインポートしました&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2021年10月22日 (金) 16:06時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ja&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(相違点なし)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://wiki.s-bou.com/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Scheduled&amp;diff=124&amp;oldid=prev</id>
		<title>ja&gt;ネイ: 「モジュール:Scheduled」を保護しました: 影響が特に大きいテンプレート: メインページで使用されるテンプレート ([編集=自動承認された利用者のみ許可] (無期限) [移動=自動承認された利用者のみ許可] (無期限))</title>
		<link rel="alternate" type="text/html" href="https://wiki.s-bou.com/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Scheduled&amp;diff=124&amp;oldid=prev"/>
		<updated>2020-07-30T11:09:51Z</updated>

		<summary type="html">&lt;p&gt;「&lt;a href=&quot;/index.php/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Scheduled&quot; title=&quot;モジュール:Scheduled&quot;&gt;モジュール:Scheduled&lt;/a&gt;」を保護しました: &lt;a href=&quot;/index.php?title=WP:HRT&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:HRT (存在しないページ)&quot;&gt;影響が特に大きいテンプレート&lt;/a&gt;: メインページで使用されるテンプレート ([編集=自動承認された利用者のみ許可] (無期限) [移動=自動承認された利用者のみ許可] (無期限))&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local DEFAULT_TZ_OFFSET = 9 --JST&lt;br /&gt;
&lt;br /&gt;
local function split(text)&lt;br /&gt;
	local lines = {}&lt;br /&gt;
	for line in text:gmatch(&amp;quot;[^\t\r\n\f ][^\n]*&amp;quot;) do&lt;br /&gt;
		lines[#lines+1] = line&lt;br /&gt;
	end&lt;br /&gt;
	return lines&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function CJD(timestamp, tzOffset)&lt;br /&gt;
	local jd = timestamp / 86400 + 2440587.5&lt;br /&gt;
	return jd + 0.5 + tzOffset / 24&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local rotation = {}&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
rotation.dailyIndex() - periodで指定した周期のインデックスを日替わりで返す&lt;br /&gt;
（optionのパラメータは下記 Scheduled.daily() を参照）&lt;br /&gt;
]]&lt;br /&gt;
rotation.dailyIndex = function(period, option)&lt;br /&gt;
	local adjuster = tonumber(option.adjuster or 0)&lt;br /&gt;
	local tzOffset = tonumber(option.tzOffset or DEFAULT_TZ_OFFSET)&lt;br /&gt;
	local step = tonumber(option.step or 1)&lt;br /&gt;
	local span = tonumber(option.span or 1)&lt;br /&gt;
	local spanAdjuster = tonumber(option.spanAdjuster or 0)&lt;br /&gt;
	local timestamp = tonumber(option.timestamp or os.time())&lt;br /&gt;
&lt;br /&gt;
	local dateValue = CJD(timestamp, tzOffset) + spanAdjuster&lt;br /&gt;
&lt;br /&gt;
	return (math.floor(dateValue / span) * step + adjuster) % period + 1&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------&lt;br /&gt;
--interface&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Scheduled.daily() - リストから日替わりで候補を取得する&lt;br /&gt;
&lt;br /&gt;
必須パラメータ:&lt;br /&gt;
	data: 改行区切りの候補リスト&lt;br /&gt;
オプション:&lt;br /&gt;
	adjuster: 任意の候補を表示させるための調整値。初期値: 0&lt;br /&gt;
	tzOffset: 日付が切り替わるタイムゾーンのオフセット値。初期値: 9 (JST)&lt;br /&gt;
	step: 1回の更新で候補リストをいくつ進めるか。step=2とすると1,3,5番目...の順。初期値: 1&lt;br /&gt;
	span: 何日単位で結果を更新するか。初期値: 1&lt;br /&gt;
	spanAdjuster: spanに2以上を指定する場合、任意のタイミングで更新させるための調整値。初期値: 0&lt;br /&gt;
	timestamp: UNIX時刻。特定の日時での実行結果を見たいときに指定。初期値: 現在時刻&lt;br /&gt;
]]&lt;br /&gt;
p.daily = function(frame)&lt;br /&gt;
	local data = frame.args.data&lt;br /&gt;
	if not data then error('引数 &amp;quot;data&amp;quot; は必須です。') end&lt;br /&gt;
&lt;br /&gt;
	local dataList = split(data)&lt;br /&gt;
&lt;br /&gt;
	local option = frame.args&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	local index = rotation.dailyIndex(#dataList, option)&lt;br /&gt;
	return dataList[index]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>ja&gt;ネイ</name></author>
	</entry>
</feed>