<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.zihuanana.top/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3A%E5%80%92%E8%AE%A1%E6%97%B6</id>
	<title>模块:倒计时 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.zihuanana.top/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3A%E5%80%92%E8%AE%A1%E6%97%B6"/>
	<link rel="alternate" type="text/html" href="https://wiki.zihuanana.top/index.php?title=%E6%A8%A1%E5%9D%97:%E5%80%92%E8%AE%A1%E6%97%B6&amp;action=history"/>
	<updated>2026-10-25T11:24:32Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.zihuanana.top/index.php?title=%E6%A8%A1%E5%9D%97:%E5%80%92%E8%AE%A1%E6%97%B6&amp;diff=11207&amp;oldid=prev</id>
		<title>ZihuananaBot：​创建倒计时 Lua 模块（Scribunto）</title>
		<link rel="alternate" type="text/html" href="https://wiki.zihuanana.top/index.php?title=%E6%A8%A1%E5%9D%97:%E5%80%92%E8%AE%A1%E6%97%B6&amp;diff=11207&amp;oldid=prev"/>
		<updated>2026-09-04T09:08:07Z</updated>

		<summary type="html">&lt;p&gt;创建倒计时 Lua 模块（Scribunto）&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local function esc( s )&lt;br /&gt;
	s = tostring( s )&lt;br /&gt;
	s = s:gsub( &amp;#039;&amp;amp;&amp;#039;, &amp;#039;&amp;amp;amp;&amp;#039; )&lt;br /&gt;
	s = s:gsub( &amp;#039;&amp;lt;&amp;#039;, &amp;#039;&amp;amp;lt;&amp;#039; )&lt;br /&gt;
	s = s:gsub( &amp;#039;&amp;gt;&amp;#039;, &amp;#039;&amp;amp;gt;&amp;#039; )&lt;br /&gt;
	return s&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main( frame )&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local s = tostring( args.date or &amp;#039;&amp;#039; )&lt;br /&gt;
	local y, mo, d = s:match( &amp;#039;^(%d+)-(%d+)-(%d+)&amp;#039; )&lt;br /&gt;
	if not y then&lt;br /&gt;
		return &amp;#039;&amp;lt;span style=&amp;quot;color:#d33;&amp;quot;&amp;gt;错误：缺少有效的 date 参数（格式 YYYY-MM-DD）&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	y, mo, d = tonumber( y ), tonumber( mo ), tonumber( d )&lt;br /&gt;
	if y &amp;lt; 1900 or y &amp;gt; 2100 or mo &amp;lt; 1 or mo &amp;gt; 12 or d &amp;lt; 1 or d &amp;gt; 31 then&lt;br /&gt;
		return &amp;#039;&amp;lt;span style=&amp;quot;color:#d33;&amp;quot;&amp;gt;错误：date 参数超出合理范围&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local target = os.time{ year = y, month = mo, day = d, hour = 0, min = 0, sec = 0 }&lt;br /&gt;
	local nowt = os.date( &amp;#039;*t&amp;#039; )&lt;br /&gt;
	local today = os.time{ year = nowt.year, month = nowt.month, day = nowt.day, hour = 0, min = 0, sec = 0 }&lt;br /&gt;
	local diff = math.floor( ( target - today ) / 86400 + 0.5 )&lt;br /&gt;
&lt;br /&gt;
	local ev = esc( args.event or &amp;#039;&amp;#039; )&lt;br /&gt;
	local evs = &amp;#039;&amp;#039;&lt;br /&gt;
	if ev ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		evs = &amp;#039;&amp;lt;span class=&amp;quot;dsh-bigcd-ev&amp;quot;&amp;gt;&amp;#039; .. ev .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local num = &amp;#039;&amp;lt;span class=&amp;quot;dsh-bigcd-num&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	if diff &amp;gt; 0 then&lt;br /&gt;
		return &amp;#039;距离&amp;#039; .. evs .. &amp;#039;还有 &amp;#039; .. num .. diff .. &amp;#039;&amp;lt;/span&amp;gt; 天&amp;#039;&lt;br /&gt;
	elseif diff == 0 then&lt;br /&gt;
		if ev ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			return evs .. &amp;#039;就是今天！&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		return &amp;#039;目标日就是今天！&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		return evs .. &amp;#039;已经 &amp;#039; .. num .. ( -diff ) .. &amp;#039;&amp;lt;/span&amp;gt; 天&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>ZihuananaBot</name></author>
	</entry>
</feed>