模板:生物联赛倒计时:修订间差异
外观
无编辑摘要 |
无编辑摘要 |
||
| (未显示同一用户的1个中间版本) | |||
| 第1行: | 第1行: | ||
<includeonly> | <includeonly> | ||
<div class="biology | <div class="biology-countdown"> | ||
<div class="countdown-header"> | <div class="countdown-header"> | ||
<div class="dna-icon">🧬</div> | <div class="dna-icon">🧬</div> | ||
| 第8行: | 第8行: | ||
<div class="countdown-content"> | <div class="countdown-content"> | ||
<div class="countdown-text"> | <div class="countdown-text"> | ||
距离{{{text| | 距离{{#if: {{{text|}}} | {{{text}}} | 全国奥林匹克生物学联赛}}还有 | ||
</div> | </div> | ||
<div class="countdown-timer"> | <div class="countdown-timer"> | ||
{{# | <!-- 确定下一个联赛日期并计算倒计时 --> | ||
{{#switch: {{{time}}} | {{#ifexpr: {{#time:U}} < {{#time:U|2025-05-11}} | | ||
| day = <span class="countdown-number">{{#expr: floor( ( {{#time: U | | <!-- 使用2025年日期 --> | ||
| hour = <span class="countdown-number">{{#expr: floor( ( {{#time: U | | {{#switch: {{#if: {{{time|}}} | {{{time}}} | day}} | ||
| minute = <span class="countdown-number">{{#expr: floor( ( {{#time: U | | | day = <span class="countdown-number">{{#expr: floor(({{#time:U|2025-05-11}} - {{#time:U}})/86400)}}</span><span class="countdown-unit">天</span> | ||
| second = <span class="countdown-number">{{#expr: | | hour = <span class="countdown-number">{{#expr: floor(({{#time:U|2025-05-11}} - {{#time:U}})/3600)}}</span><span class="countdown-unit">小时</span> | ||
| minute = <span class="countdown-number">{{#expr: floor(({{#time:U|2025-05-11}} - {{#time:U}})/60)}}</span><span class="countdown-unit">分钟</span> | |||
| second = <span class="countdown-number">{{#expr: {{#time:U|2025-05-11}} - {{#time:U}}}}</span><span class="countdown-unit">秒</span> | |||
}} | }} | ||
| <span class="countdown-number">{{#expr: floor( ( {{#time: U | {{# | | {{#ifexpr: {{#time:U}} < {{#time:U|2026-05-10}} | | ||
}} | <!-- 使用2026年日期 --> | ||
{{#switch: {{#if: {{{time|}}} | {{{time}}} | day}} | |||
| day = <span class="countdown-number">{{#expr: floor(({{#time:U|2026-05-10}} - {{#time:U}})/86400)}}</span><span class="countdown-unit">天</span> | |||
| hour = <span class="countdown-number">{{#expr: floor(({{#time:U|2026-05-10}} - {{#time:U}})/3600)}}</span><span class="countdown-unit">小时</span> | |||
| minute = <span class="countdown-number">{{#expr: floor(({{#time:U|2026-05-10}} - {{#time:U}})/60)}}</span><span class="countdown-unit">分钟</span> | |||
| second = <span class="countdown-number">{{#expr: {{#time:U|2026-05-10}} - {{#time:U}}}}</span><span class="countdown-unit">秒</span> | |||
}} | |||
| {{#ifexpr: {{#time:U}} < {{#time:U|2027-05-09}} | | |||
<!-- 使用2027年日期 --> | |||
{{#switch: {{#if: {{{time|}}} | {{{time}}} | day}} | |||
| day = <span class="countdown-number">{{#expr: floor(({{#time:U|2027-05-09}} - {{#time:U}})/86400)}}</span><span class="countdown-unit">天</span> | |||
| hour = <span class="countdown-number">{{#expr: floor(({{#time:U|2027-05-09}} - {{#time:U}})/3600)}}</span><span class="countdown-unit">小时</span> | |||
| minute = <span class="countdown-number">{{#expr: floor(({{#time:U|2027-05-09}} - {{#time:U}})/60)}}</span><span class="countdown-unit">分钟</span> | |||
| second = <span class="countdown-number">{{#expr: {{#time:U|2027-05-09}} - {{#time:U}}}}</span><span class="countdown-unit">秒</span> | |||
}} | |||
| {{#ifexpr: {{#time:U}} < {{#time:U|2028-05-14}} | | |||
<!-- 使用2028年日期 --> | |||
{{#switch: {{#if: {{{time|}}} | {{{time}}} | day}} | |||
| day = <span class="countdown-number">{{#expr: floor(({{#time:U|2028-05-14}} - {{#time:U}})/86400)}}</span><span class="countdown-unit">天</span> | |||
| hour = <span class="countdown-number">{{#expr: floor(({{#time:U|2028-05-14}} - {{#time:U}})/3600)}}</span><span class="countdown-unit">小时</span> | |||
| minute = <span class="countdown-number">{{#expr: floor(({{#time:U|2028-05-14}} - {{#time:U}})/60)}}</span><span class="countdown-unit">分钟</span> | |||
| second = <span class="countdown-number">{{#expr: {{#time:U|2028-05-14}} - {{#time:U}}}}</span><span class="countdown-unit">秒</span> | |||
}} | |||
| {{#ifexpr: {{#time:U}} < {{#time:U|2029-05-13}} | | |||
<!-- 使用2029年日期 --> | |||
{{#switch: {{#if: {{{time|}}} | {{{time}}} | day}} | |||
| day = <span class="countdown-number">{{#expr: floor(({{#time:U|2029-05-13}} - {{#time:U}})/86400)}}</span><span class="countdown-unit">天</span> | |||
| hour = <span class="countdown-number">{{#expr: floor(({{#time:U|2029-05-13}} - {{#time:U}})/3600)}}</span><span class="countdown-unit">小时</span> | |||
| minute = <span class="countdown-number">{{#expr: floor(({{#time:U|2029-05-13}} - {{#time:U}})/60)}}</span><span class="countdown-unit">分钟</span> | |||
| second = <span class="countdown-number">{{#expr: {{#time:U|2029-05-13}} - {{#time:U}}}}</span><span class="countdown-unit">秒</span> | |||
}} | |||
| {{#ifexpr: {{#time:U}} < {{#time:U|2030-05-12}} | | |||
<!-- 使用2030年日期 --> | |||
{{#switch: {{#if: {{{time|}}} | {{{time}}} | day}} | |||
| day = <span class="countdown-number">{{#expr: floor(({{#time:U|2030-05-12}} - {{#time:U}})/86400)}}</span><span class="countdown-unit">天</span> | |||
| hour = <span class="countdown-number">{{#expr: floor(({{#time:U|2030-05-12}} - {{#time:U}})/3600)}}</span><span class="countdown-unit">小时</span> | |||
| minute = <span class="countdown-number">{{#expr: floor(({{#time:U|2030-05-12}} - {{#time:U}})/60)}}</span><span class="countdown-unit">分钟</span> | |||
| second = <span class="countdown-number">{{#expr: {{#time:U|2030-05-12}} - {{#time:U}}}}</span><span class="countdown-unit">秒</span> | |||
}} | |||
| {{#ifexpr: {{#time:U}} < {{#time:U|2031-05-11}} | | |||
<!-- 使用2031年日期 --> | |||
{{#switch: {{#if: {{{time|}}} | {{{time}}} | day}} | |||
| day = <span class="countdown-number">{{#expr: floor(({{#time:U|2031-05-11}} - {{#time:U}})/86400)}}</span><span class="countdown-unit">天</span> | |||
| hour = <span class="countdown-number">{{#expr: floor(({{#time:U|2031-05-11}} - {{#time:U}})/3600)}}</span><span class="countdown-unit">小时</span> | |||
| minute = <span class="countdown-number">{{#expr: floor(({{#time:U|2031-05-11}} - {{#time:U}})/60)}}</span><span class="countdown-unit">分钟</span> | |||
| second = <span class="countdown-number">{{#expr: {{#time:U|2031-05-11}} - {{#time:U}}}}</span><span class="countdown-unit">极</span> | |||
}} | |||
| {{#ifexpr: {{#time:U}} < {{#time:U|2032-05-09}} | | |||
<!-- 使用2032年日期 --> | |||
{{#switch: {{#if: {{{time|}}} | {{{time}}} | day}} | |||
| day = <span class="countdown-number">{{#expr: floor(({{#time:U|2032-05-09}} - {{#time:U}})/86400)}}</span><span class="countdown-unit">天</span> | |||
| hour = <span class="countdown-number">{{#expr: floor(({{#time:U|2032-05-09}} - {{#time:U}})/3600)}}</span><span class="countdown-unit">小时</span> | |||
| minute = <span class="countdown-number">{{#expr: floor(({{#time:U|2032-05-09}} - {{#time:U}})/60)}}</span><span class="countdown-unit">分钟</span> | |||
| second = <span class="countdown-number">{{#expr: {{#time:U|2032-05-09}} - {{#time:U}}}}</span><span class="countdown-unit">秒</span> | |||
}} | |||
| {{#ifexpr: {{#time:U}} < {{#time:U|2033-05-08}} | | |||
<!-- 使用2033年日期 --> | |||
{{#switch: {{#if: {{{time|}}} | {{{time}}} | day}} | |||
| day = <span class="countdown-number">{{#expr: floor(({{#time:U|2033-05-08}} - {{#time:U}})/86400)}}</span><span class="countdown-unit">天</span> | |||
| hour = <span class="countdown-number">{{#expr: floor(({{#time:U|2033-05-08}} - {{#time:U}})/3600)}}</span><span class="countdown-unit">小时</span> | |||
| minute = <span class="countdown-number">{{#expr: floor(({{#time:U|2033-05-08}} - {{#time:U}})/60)}}</span><span class="countdown-unit">分钟</span> | |||
| second = <span class="countdown-number">{{#expr: {{#time:U|2033-05-08}} - {{#time:U}}}}</span><span极 class="countdown-unit">秒</span> | |||
}} | |||
| {{#ifexpr: {{#time:U}} < {{#time:U|2034-05-14}} | | |||
<!-- 使用2034年日期 --> | |||
{{#switch: {{#if: {{{time|}}} | {{{time}}} | day}} | |||
| day = <span class="countdown-number">{{#expr: floor(({{#time:U|2034-05-14}} - {{#time:U}})/86400)}}</span><span class="countdown-unit">天</span> | |||
| hour = <span class="countdown-number">{{#expr: floor(({{#time:U|2034-05-14}} - {{#time:U}})/3600)}}</span><span class="countdown-unit">小时</span> | |||
| minute = <span class="countdown-number">{{#expr: floor(({{#time:U|2034-05-14}} - {{#time:U}})/60)}}</span><span class="countdown-unit">分钟</span> | |||
| second = <span class="countdown-number">{{#expr: {{#time:U|2034-05-14}} - {{#time:U}}}}</span><span class="countdown-unit">秒</span> | |||
}} | |||
| {{#ifexpr: {{#time:U}} < {{#time:U|2035-05-13}} | | |||
<!-- 使用2035年日期 --> | |||
{{#switch: {{#if: {{{time|}}} | {{{time}}} | day}} | |||
| day = <span class="countdown-number">{{#expr: floor(({{#time:U|2035-05-13}} - {{#time:U}})/86400)}}</span><span class="countdown-unit">天</span> | |||
| hour = <span class="countdown-number">{{#expr: floor(({{#time:U|2035-05-13}} - {{#time:U}})/3600)}}</span><span class="countdown-unit">小时</span> | |||
| minute = <span class="countdown-number">{{#expr: floor(({{#time:U|2035-05-13}} - {{#time:U}})/60)}}</span><span class="countdown-unit">分钟</span> | |||
| second = <span class="countdown-number">{{#expr: {{#time:极U|2035-05-13}} - {{#time:U}}}}</span><span class="countdown-unit">秒</span> | |||
}} | |||
| | |||
<!-- 如果所有日期都已过去,显示2035年日期 --> | |||
{{#switch: {{#if: {{{time|}}} | {{{time}}} | day}} | |||
| day = <span class="countdown-number">{{#expr: floor(({{#time:U|2035-05-13}} - {{#time:U}})/86400)}}</span><span class="countdown-unit">天</span> | |||
| hour = <span class="countdown-number">{{#expr: floor(({{#time:U|2035-05-13}} - {{#time:U}})/3600)}}</span><span class="countdown-unit">小时</span> | |||
| minute = <span class="countdown-number">{{#expr: floor(({{#time:U|2035-05-13}} - {{#time:U}})/60)}}</span><span class="countdown-unit">分钟</span> | |||
| second = <span class="countdown-number">{{#expr: {{#time:U|2035-05-13}} - {{#time:U}}}}</span><span class="countdown-unit">秒</span> | |||
}} | |||
}}}}}}}}}}}} | |||
</div> | </div> | ||
<div class="countdown-date"> | <div class="countdown-date"> | ||
下一届联赛日期: {{# | 下一届联赛日期: | ||
{{#ifexpr: {{#time:U}} < {{#time:U|2025-05-11}} | 2025-05-11 | | |||
{{#ifexpr: {{#time:U}} < {{#time:U|2026-05-10}} | 2026-05-10 | | |||
{{#ifexpr: {{#time:U}} < {{#time:U|2027-05-09}} | 2027-05-09 | | |||
{{#ifexpr: {{#time:U}} < {{#time:U|2028-05-14}} | 2028-05-14 | | |||
{{#ifexpr: {{#time:U}} < {{#time:U|2029-05-13}} | 2029-05-13 | | |||
{{#ifexpr: {{#time:U}} < {{#time:U|2030-05-12}} | 2030-05-12 | | |||
{{#ifexpr: {{#time:U}} < {{#time:U|2031-05-11}} | 2031-05-11 | | |||
{{#ifexpr: {{#time:U}} < {{#time:U|2032-05-09}} | 2032-05-09 | | |||
{{#ifexpr: {{#time:U}} < {{#time:U|2033-05-08}} | 2033-05-08 | | |||
{{#ifexpr: {{#time:U}} < {{#time:U|2034-05-14}} | 2034-05-14 | | |||
{{#ifexpr: {{#time:U}} < {{#time:U|2035-05-13}} | 2035-05-13 | 2035-05-13 | |||
}} | |||
}} | |||
}} | |||
}} | |||
}} | |||
}} | |||
}} | |||
}} | |||
}} | |||
}} | |||
}} | |||
</div> | </div> | ||
</div> | </div> | ||
| 第34行: | 第145行: | ||
<style> | <style> | ||
.biology | .biology-countdown { | ||
background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%); | background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%); | ||
border-radius: 12px; | border-radius: 12px; | ||
| 第48行: | 第159行: | ||
} | } | ||
.biology | .biology-countdown::before { | ||
content: ""; | content: ""; | ||
position: absolute; | position: absolute; | ||
| 第55行: | 第166行: | ||
right: 0; | right: 0; | ||
height: 4px; | height: 4px; | ||
background: linear-gradient( | background: linear-gradient(90极deg, #4caf50, #8bc34a, #cddc39); | ||
} | } | ||
| 第133行: | 第244行: | ||
@media (max-width: 480px) { | @media (max-width: 480px) { | ||
.biology | .biology-countdown { | ||
padding: 15px; | padding: 15px; | ||
margin: 10px; | margin: 10px; | ||
2025年8月22日 (五) 12:22的最新版本
-- 预定义的联赛日期表(2025-2035年五月的第二个星期日) local olympiadDates = {
"2025-05-11", "2026-05-10", "2027-05-09", "2028-05-14", "2029-05-13", "2030-05-12", "2031-05-11", "2032-05-09", "2033-05-08", "2034-05-14", "2035-05-13"
}
function p.getNextDate()
local currentTime = os.time()
for i, dateStr in ipairs(olympiadDates) do
local datePattern = "(%d+)-(%d+)-(%d+)"
local year, month, day = dateStr:match(datePattern)
local olympiadTime = os.time({year = year, month = month, day = day})
if olympiadTime > currentTime then
return dateStr
end
end
-- 如果所有日期都已过去,返回最后一个日期
return olympiadDates[#olympiadDates]
end
return p|action=edit}} 创建]] [刷新]