https://en.wikipedia.org/w/index.php?action=history&feed=atom&title=Module%3ACountdown-ymd Module:Countdown-ymd - Revision history 2025-05-29T11:25:11Z Revision history for this page on the wiki MediaWiki 1.45.0-wmf.2 https://en.wikipedia.org/w/index.php?title=Module:Countdown-ymd&diff=1145089158&oldid=prev Kuldeepburjbhalaike: Undid revision 1145088938 by Kuldeepburjbhalaike (talk) 2023-03-17T06:14:08Z <p>Undid revision 1145088938 by <a href="/wiki/Special:Contributions/Kuldeepburjbhalaike" title="Special:Contributions/Kuldeepburjbhalaike">Kuldeepburjbhalaike</a> (<a href="/wiki/User_talk:Kuldeepburjbhalaike" title="User talk:Kuldeepburjbhalaike">talk</a>)</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 06:14, 17 March 2023</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 303:</td> <td colspan="2" class="diff-lineno">Line 303:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> local result = {} -- results table with some formatting; values less than one are not added to the table </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> local result = {} -- results table with some formatting; values less than one are not added to the table </div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (ymd_til_start.year, '<del style="font-weight: bold; text-decoration: none;">ਸਾਲ</del>')); -- add date parameters</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (ymd_til_start.year, '<ins style="font-weight: bold; text-decoration: none;">year</ins>')); -- add date parameters</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (ymd_til_start.month, '<del style="font-weight: bold; text-decoration: none;">ਮਹੀਨੇ</del>'));</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (ymd_til_start.month, '<ins style="font-weight: bold; text-decoration: none;">month</ins>'));</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (ymd_til_start.day, '<del style="font-weight: bold; text-decoration: none;">ਦਿਨ</del>'));</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (ymd_til_start.day, '<ins style="font-weight: bold; text-decoration: none;">day</ins>'));</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> local count = #result; -- zero if less than 24 hours to event; when less than 24 hours display all non-zero time units</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> local count = #result; -- zero if less than 24 hours to event; when less than 24 hours display all non-zero time units</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (hms_til_start.hour, '<del style="font-weight: bold; text-decoration: none;">ਘੰਟੇ</del>')); -- always include hours if it is not zero</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (hms_til_start.hour, '<ins style="font-weight: bold; text-decoration: none;">hour</ins>')); -- always include hours if it is not zero</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if args.hour or 0 == count then -- if event start hour provided in template, show non-zero minutes</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if args.hour or 0 == count then -- if event start hour provided in template, show non-zero minutes</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (hms_til_start.min, '<del style="font-weight: bold; text-decoration: none;">ਮਿੰਟ</del>'));</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (hms_til_start.min, '<ins style="font-weight: bold; text-decoration: none;">minute</ins>'));</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if (args.minute and args.hour) or 0 == count then -- if event start hour and minute provided in template, show non-zero seconds</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if (args.minute and args.hour) or 0 == count then -- if event start hour and minute provided in template, show non-zero seconds</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (hms_til_start.sec, '<del style="font-weight: bold; text-decoration: none;">ਸੈਕਿੰਡ</del>'));</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (hms_til_start.sec, '<ins style="font-weight: bold; text-decoration: none;">second</ins>'));</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 319:</td> <td colspan="2" class="diff-lineno">Line 319:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> result = mw.ustring.gsub(result, '(%d+)', '&lt;span style="color: ' .. (args.color or 'blue') .. '; font-weight: bold;"&gt;%1&lt;/span&gt;')</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> result = mw.ustring.gsub(result, '(%d+)', '&lt;span style="color: ' .. (args.color or 'blue') .. '; font-weight: bold;"&gt;%1&lt;/span&gt;')</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> local refreshLink = mw.title.getCurrentTitle():fullUrl{action = 'purge'}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> local refreshLink = mw.title.getCurrentTitle():fullUrl{action = 'purge'}</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> refreshLink = mw.ustring.format(' &lt;sup&gt;[&lt;span class="plainlinks"&gt;[%s <del style="font-weight: bold; text-decoration: none;">ਤਾਜ਼ਾ ਕਰੋ</del>]&lt;/span&gt;]&lt;/sup&gt;', refreshLink)</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> refreshLink = mw.ustring.format(' &lt;sup&gt;[&lt;span class="plainlinks"&gt;[%s <ins style="font-weight: bold; text-decoration: none;">refresh</ins>]&lt;/span&gt;]&lt;/sup&gt;', refreshLink)</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if not args.duration then -- will be nil if event hasn't started yet or |duration= not specified</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if not args.duration then -- will be nil if event hasn't started yet or |duration= not specified</div></td> </tr> </table> Kuldeepburjbhalaike https://en.wikipedia.org/w/index.php?title=Module:Countdown-ymd&diff=1145088938&oldid=prev Kuldeepburjbhalaike at 06:12, 17 March 2023 2023-03-17T06:12:16Z <p></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 06:12, 17 March 2023</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 303:</td> <td colspan="2" class="diff-lineno">Line 303:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> local result = {} -- results table with some formatting; values less than one are not added to the table </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> local result = {} -- results table with some formatting; values less than one are not added to the table </div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (ymd_til_start.year, '<del style="font-weight: bold; text-decoration: none;">year</del>')); -- add date parameters</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (ymd_til_start.year, '<ins style="font-weight: bold; text-decoration: none;">ਸਾਲ</ins>')); -- add date parameters</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (ymd_til_start.month, '<del style="font-weight: bold; text-decoration: none;">month</del>'));</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (ymd_til_start.month, '<ins style="font-weight: bold; text-decoration: none;">ਮਹੀਨੇ</ins>'));</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (ymd_til_start.day, '<del style="font-weight: bold; text-decoration: none;">day</del>'));</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (ymd_til_start.day, '<ins style="font-weight: bold; text-decoration: none;">ਦਿਨ</ins>'));</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> local count = #result; -- zero if less than 24 hours to event; when less than 24 hours display all non-zero time units</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> local count = #result; -- zero if less than 24 hours to event; when less than 24 hours display all non-zero time units</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (hms_til_start.hour, '<del style="font-weight: bold; text-decoration: none;">hour</del>')); -- always include hours if it is not zero</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (hms_til_start.hour, '<ins style="font-weight: bold; text-decoration: none;">ਘੰਟੇ</ins>')); -- always include hours if it is not zero</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if args.hour or 0 == count then -- if event start hour provided in template, show non-zero minutes</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if args.hour or 0 == count then -- if event start hour provided in template, show non-zero minutes</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (hms_til_start.min, '<del style="font-weight: bold; text-decoration: none;">minute</del>'));</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (hms_til_start.min, '<ins style="font-weight: bold; text-decoration: none;">ਮਿੰਟ</ins>'));</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if (args.minute and args.hour) or 0 == count then -- if event start hour and minute provided in template, show non-zero seconds</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if (args.minute and args.hour) or 0 == count then -- if event start hour and minute provided in template, show non-zero seconds</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (hms_til_start.sec, '<del style="font-weight: bold; text-decoration: none;">second</del>'));</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> table.insert (result, format_unit (hms_til_start.sec, '<ins style="font-weight: bold; text-decoration: none;">ਸੈਕਿੰਡ</ins>'));</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 319:</td> <td colspan="2" class="diff-lineno">Line 319:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> result = mw.ustring.gsub(result, '(%d+)', '&lt;span style="color: ' .. (args.color or 'blue') .. '; font-weight: bold;"&gt;%1&lt;/span&gt;')</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> result = mw.ustring.gsub(result, '(%d+)', '&lt;span style="color: ' .. (args.color or 'blue') .. '; font-weight: bold;"&gt;%1&lt;/span&gt;')</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> local refreshLink = mw.title.getCurrentTitle():fullUrl{action = 'purge'}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> local refreshLink = mw.title.getCurrentTitle():fullUrl{action = 'purge'}</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> refreshLink = mw.ustring.format(' &lt;sup&gt;[&lt;span class="plainlinks"&gt;[%s <del style="font-weight: bold; text-decoration: none;">refresh</del>]&lt;/span&gt;]&lt;/sup&gt;', refreshLink)</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> refreshLink = mw.ustring.format(' &lt;sup&gt;[&lt;span class="plainlinks"&gt;[%s <ins style="font-weight: bold; text-decoration: none;">ਤਾਜ਼ਾ ਕਰੋ</ins>]&lt;/span&gt;]&lt;/sup&gt;', refreshLink)</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if not args.duration then -- will be nil if event hasn't started yet or |duration= not specified</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if not args.duration then -- will be nil if event hasn't started yet or |duration= not specified</div></td> </tr> </table> Kuldeepburjbhalaike https://en.wikipedia.org/w/index.php?title=Module:Countdown-ymd&diff=1117548606&oldid=prev WOSlinker: use require('strict') instead of require('Module:No globals') 2022-10-22T09:10:48Z <p>use require(&#039;strict&#039;) instead of require(&#039;Module:No globals&#039;)</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 09:10, 22 October 2022</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 1:</td> <td colspan="2" class="diff-lineno">Line 1:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>-- This module powers {{countdown-ymd}}.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>-- This module powers {{countdown-ymd}}.</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>require('<del style="font-weight: bold; text-decoration: none;">Module:No globals</del>')</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>require('<ins style="font-weight: bold; text-decoration: none;">strict</ins>')</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local p = {}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local p = {}</div></td> </tr> </table> WOSlinker https://en.wikipedia.org/w/index.php?title=Module:Countdown-ymd&diff=659870541&oldid=prev Trappist the monk: Synch from sandbox; 2015-04-29T13:21:01Z <p>Synch from sandbox;</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 13:21, 29 April 2015</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 33:</td> <td colspan="2" class="diff-lineno">Line 33:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>--[[--------------------------&lt; D U R A T I O N &gt;--------------------------------------------------------------</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>--[[--------------------------&lt; D U R A T I O N &gt;--------------------------------------------------------------</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Returns duration of event in seconds. If <del style="font-weight: bold; text-decoration: none;">'duration</del> <del style="font-weight: bold; text-decoration: none;">unit'</del> not defined, assumes seconds. If <del style="font-weight: bold; text-decoration: none;">'duration</del> <del style="font-weight: bold; text-decoration: none;">unit'</del></div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Returns duration of event in seconds. If <ins style="font-weight: bold; text-decoration: none;">the</ins> <ins style="font-weight: bold; text-decoration: none;">units are</ins> not defined, assumes seconds. If <ins style="font-weight: bold; text-decoration: none;">the units</ins> <ins style="font-weight: bold; text-decoration: none;">are</ins></div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>defined but not one of day, days, hour, hours, minute, minutes, second, seconds then returns zero.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>defined but not one of day, days, hour, hours, minute, minutes, second, seconds then returns zero.</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>|duration=&lt;number&gt;&lt;space&gt;&lt;unit&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>TODO: Why are we even considering seconds and minutes? Would it be better to specify and end time?</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>TODO: Why are we even considering seconds and minutes? Would it be better to specify and end time?</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 40:</td> <td colspan="2" class="diff-lineno">Line 42:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>]]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>local function duration (duration<del style="font-weight: bold; text-decoration: none;">, unit</del>)</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>local function duration (duration)</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> local number, unit = duration:match ('(%d+)%s+(%a*)');</div></td> </tr> <tr> <td class="diff-marker"><a class="mw-diff-movedpara-left" title="Paragraph was moved. Click to jump to new location." href="#movedpara_10_2_rhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_7_0_lhs"></a> <del style="font-weight: bold; text-decoration: none;">if</del> not unit then</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td> </tr> <tr> <td class="diff-marker"><a class="mw-diff-movedpara-left" title="Paragraph was moved. Click to jump to new location." href="#movedpara_10_3_rhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_9_0_lhs"></a> return <del style="font-weight: bold; text-decoration: none;">duration</del>; -- unit not defined, assume seconds</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> if not number then</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> return 0; -- duration not properly specified</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker"><a class="mw-diff-movedpara-right" title="Paragraph was moved. Click to jump to old location." href="#movedpara_7_0_lhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_10_2_rhs"></a> <ins style="font-weight: bold; text-decoration: none;">elseif</ins> not unit then</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker"><a class="mw-diff-movedpara-right" title="Paragraph was moved. Click to jump to old location." href="#movedpara_9_0_lhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_10_3_rhs"></a> return <ins style="font-weight: bold; text-decoration: none;">number</ins>;<ins style="font-weight: bold; text-decoration: none;"> </ins> -- unit not defined, assume seconds</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if unit:match ('days?') then</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if unit:match ('days?') then</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> return <del style="font-weight: bold; text-decoration: none;">duration</del> * 86400;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> return <ins style="font-weight: bold; text-decoration: none;">number</ins> * 86400;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> elseif unit:match ('hours?') then</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> elseif unit:match ('hours?') then</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> return <del style="font-weight: bold; text-decoration: none;">duration</del> * 3600;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> return <ins style="font-weight: bold; text-decoration: none;">number</ins> * 3600;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> elseif unit:match ('minutes?') then</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> elseif unit:match ('minutes?') then</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> return <del style="font-weight: bold; text-decoration: none;">duration</del> * 60;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> return <ins style="font-weight: bold; text-decoration: none;">number</ins> * 60;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> elseif unit:match ('seconds?') then</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> elseif unit:match ('seconds?') then</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> return <del style="font-weight: bold; text-decoration: none;">duration</del>;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> return <ins style="font-weight: bold; text-decoration: none;">number</ins>;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> else</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> else</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> return 0;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> return 0;<ins style="font-weight: bold; text-decoration: none;"> -- unknown unit</ins></div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>end</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 237:</td> <td colspan="2" class="diff-lineno">Line 243:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> |utc offset=</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> |utc offset=</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> |duration=</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> |duration=</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> |duration unit=</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> </div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> presentation parameters:</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> presentation parameters:</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> |color=</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> |color=</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> wrapping-text parameters:</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> wrapping-text parameters:</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> |event lead= –<del style="font-weight: bold; text-decoration: none;"> not yet supported -</del> text ahead of countdown text while event is in progress; countdown text is time to end of event; default is static_text.ends</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> |event lead= – text ahead of countdown text while event is in progress; countdown text is time to end of event; default is static_text.ends</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> |event tail= –<del style="font-weight: bold; text-decoration: none;"> not yet supported -</del> text that follows countdown text while event is in progress; default is empty string</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> |event tail= – text that follows countdown text while event is in progress; default is empty string</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> |expired=<del style="font-weight: bold; text-decoration: none;"> - not yet supported</del> - display text when event is in the past; default is static_text.passed; when |duration= is set then default is static_text.ended</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> |expired= - display text when event is in the past; default is static_text.passed; when |duration= is set then default is static_text.ended</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> |lead= –<del style="font-weight: bold; text-decoration: none;"> not yet supported -</del> text ahead of countdown text; default is static_text.begins; overridden by |event lead= while event is in progress;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> |lead= – text ahead of countdown text; default is static_text.begins; overridden by |event lead= while event is in progress;</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> |tail= –<del style="font-weight: bold; text-decoration: none;"> not yet supported -</del> text that follows countdown text; default is empty string; overridden by |event tail= while event is in progress</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> |tail= – text that follows countdown text; default is empty string; overridden by |event tail= while event is in progress</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>]]</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 271:</td> <td colspan="2" class="diff-lineno">Line 276:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return args.expired or static_text.passed; -- if the event start time has passed, we're done</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return args.expired or static_text.passed; -- if the event start time has passed, we're done</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> else</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> else</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> event = event + duration (args.duration<del style="font-weight: bold; text-decoration: none;">, args['duration unit']</del>); -- calculate event ending time</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> event = event + duration (args.duration);<ins style="font-weight: bold; text-decoration: none;"> </ins> -- calculate event ending time</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if event &lt; os.time () then</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if event &lt; os.time () then</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return args.expired or static_text.ended; -- if the event start time + duration has passed, we're done</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return args.expired or static_text.ended; -- if the event start time + duration has passed, we're done</div></td> </tr> </table> Trappist the monk https://en.wikipedia.org/w/index.php?title=Module:Countdown-ymd&diff=659770145&oldid=prev Trappist the monk: sp; 2015-04-28T23:35:15Z <p>sp;</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 23:35, 28 April 2015</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 255:</td> <td colspan="2" class="diff-lineno">Line 255:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if false == is_valid_date_time (args.year, args.month, args.day, args.hour, args.minute, args.second) then -- validate our inputs; minimal requirement is |year=</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if false == is_valid_date_time (args.year, args.month, args.day, args.hour, args.minute, args.second) then -- validate our inputs; minimal requirement is |year=</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> return static_text.<del style="font-weight: bold; text-decoration: none;">invlaid</del>;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> return static_text.<ins style="font-weight: bold; text-decoration: none;">invalid</ins>;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> -- convert event time parameters to seconds; use default January 1 @ 0h for defaults if not provided</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> -- convert event time parameters to seconds; use default January 1 @ 0h for defaults if not provided</div></td> </tr> </table> Trappist the monk https://en.wikipedia.org/w/index.php?title=Module:Countdown-ymd&diff=659696540&oldid=prev Trappist the monk: Create; sync from sandbox; 2015-04-28T15:31:43Z <p>Create; sync from sandbox;</p> <p><b>New page</b></p><div>-- This module powers {{countdown-ymd}}.<br /> require(&#039;Module:No globals&#039;)<br /> <br /> local p = {}<br /> local static_text = {<br /> [&#039;eventtime&#039;] = &#039;Time to event:&#039;,<br /> [&#039;begins&#039;] = &#039;Event begins in&#039;, -- when |duration= is set<br /> [&#039;ends&#039;] = &#039;Event ends in&#039;, -- when |duration= is set<br /> [&#039;ended&#039;] = &#039;Event has ended.&#039;, -- when |duration= is set<br /> [&#039;passed&#039;] = &#039;Event time has passed.&#039;,<br /> [&#039;invalid&#039;] = &#039;&lt;span style=&quot;font-size:100%&quot; class=&quot;error&quot;&gt;Error: invalid date and/or time&lt;/span&gt;&#039;,<br /> }<br /> <br /> local getArgs = require(&#039;Module:Arguments&#039;).getArgs<br /> <br /> --[[--------------------------&lt; F O R M A T _ U N I T &gt;--------------------------------------------------------<br /> <br /> Concatenates a singular or plural label to a time/date unit: unit label or unit labels. If unit is 0 or less, returns nil<br /> <br /> ]]<br /> <br /> local function format_unit (unit, label)<br /> if 1 &gt; unit then -- less than one so don&#039;t display<br /> return nil; -- return nil so the result of this call isn&#039;t stuffed into results table by table.insert<br /> elseif 1 == unit then<br /> return unit .. &#039; &#039; .. label; -- only one unit so return singular label<br /> else<br /> return unit .. &#039; &#039; .. label .. &#039;s&#039;; -- multiple units so return plural label<br /> end<br /> end<br /> <br /> <br /> --[[--------------------------&lt; D U R A T I O N &gt;--------------------------------------------------------------<br /> <br /> Returns duration of event in seconds. If &#039;duration unit&#039; not defined, assumes seconds. If &#039;duration unit&#039;<br /> defined but not one of day, days, hour, hours, minute, minutes, second, seconds then returns zero.<br /> <br /> TODO: Why are we even considering seconds and minutes? Would it be better to specify and end time?<br /> <br /> ]]<br /> <br /> local function duration (duration, unit)<br /> if not unit then<br /> return duration; -- unit not defined, assume seconds<br /> end<br /> <br /> if unit:match (&#039;days?&#039;) then<br /> return duration * 86400;<br /> elseif unit:match (&#039;hours?&#039;) then<br /> return duration * 3600;<br /> elseif unit:match (&#039;minutes?&#039;) then<br /> return duration * 60;<br /> elseif unit:match (&#039;seconds?&#039;) then<br /> return duration;<br /> else<br /> return 0;<br /> end<br /> end<br /> <br /> --[[--------------------------&lt; U T C _ O F F S E T &gt;----------------------------------------------------------<br /> <br /> Returns offset from UTC in seconds. If &#039;utc offset&#039; parameter is out of range or malformed, returns 0.<br /> <br /> TODO: Return a success/fail flag so we can emit an error message?<br /> <br /> ]]<br /> <br /> local function utc_offset (offset)<br /> local sign, utc_offset_hr, utc_offset_min;<br /> <br /> if offset:match(&#039;^[%+%-]%d%d:%d%d$&#039;) then -- formal style: sign, hours colon minutes all required<br /> sign, utc_offset_hr, utc_offset_min = offset:match(&#039;^([%+%-])(%d%d):(%d%d)$&#039;);<br /> elseif offset:match(&#039;^[%+%-]?%d?%d:?%d%d$&#039;) then -- informal: sign and colon optional, 1- or 2-digit hours, and minutes <br /> sign, utc_offset_hr, utc_offset_min = offset:match(&#039;^([%+%-]?)(%d?%d):?(%d%d)$&#039;);<br /> elseif offset:match(&#039;^[%+%-]?%d?%d$&#039;) then -- informal: sign optional, 1- or 2-digit hours only<br /> sign, utc_offset_hr = offset:match(&#039;^([%+%-]?)(%d?%d)$&#039;);<br /> utc_offset_min = 0; -- because not included in parameter, set it to 0 minutes<br /> else<br /> return 0; -- malformed so return 0 seconds<br /> end<br /> <br /> utc_offset_hr = tonumber (utc_offset_hr);<br /> utc_offset_min = tonumber (utc_offset_min);<br /> <br /> if 12 &lt; utc_offset_hr or 59 &lt; utc_offset_min then -- hour and minute range checks<br /> return 0;<br /> end<br /> <br /> if &#039;-&#039; == sign then<br /> sign = -1; -- negative west offset<br /> else<br /> sign = 1; -- + or sign omitted east offset<br /> end<br /> utc_offset_hr = sign * (utc_offset_hr * 3600); -- utc offset hours * seconds/hour<br /> utc_offset_min = sign * (utc_offset_min * 60); -- utc offset minutes * seconds/minute<br /> return utc_offset_hr + utc_offset_min; -- return the UTC offset adjustment in seconds<br /> end<br /> <br /> <br /> --[[--------------------------&lt; G E T _ D A Y S _ I N _ M O N T H &gt;--------------------------------------------<br /> <br /> Returns the number of days in the month where month is a number 1–12 and year is four-digit Gregorian calendar.<br /> Accounts for leap year.<br /> <br /> ]]<br /> <br /> local function get_days_in_month (year, month)<br /> local days_in_month = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};<br /> <br /> year = tonumber (year); -- force these to be numbers just in case<br /> month = tonumber (month);<br /> <br /> if (2 == month) then -- if February<br /> if (0 == (year%4) and (0 ~= (year%100) or 0 == (year%400))) then -- is year a leap year?<br /> return 29; -- if leap year then 29 days in February<br /> end<br /> end<br /> return days_in_month [month];<br /> end<br /> <br /> --[[--------------------------&lt; D I F F _ T I M E &gt;------------------------------------------------------------<br /> <br /> calculates the difference between two times; returns a table of the differences in diff.hour, diff.min, and diff.sec<br /> <br /> ]]<br /> <br /> local function diff_time (a, b)<br /> local diff = {}<br /> diff.sec = a.sec - b. sec;<br /> if diff.sec &lt; 0 then<br /> diff.sec = diff.sec + 60; -- borrow from minutes<br /> a.min = a.min - 1;<br /> if a.min &lt; 0 then<br /> a.min = a.min + 60; -- borrow from hours<br /> a.hour = a.hour - 1;<br /> end<br /> end<br /> diff.min = a.min - b.min;<br /> if diff.min &lt; 0 then<br /> diff.min = diff.min + 60; -- borrow from hours<br /> a.hour = a.hour - 1;<br /> end<br /> diff.hour = a.hour - b.hour;<br /> return diff;<br /> end<br /> <br /> --[[--------------------------&lt; D I F F _ D A T E &gt;------------------------------------------------------------<br /> <br /> calculates the difference between two dates; returns a table of the difference in diff.year, diff.month, and diff.day<br /> <br /> ]]<br /> <br /> local function diff_date (a, b)<br /> local diff = {}<br /> diff.day = a.day - b.day;<br /> if diff.day &lt; 0 then<br /> a.month = a.month - 1;<br /> if a.month &lt; 1 then <br /> a.year = a.year - 1; -- borrow a month from years<br /> a.month = a.month + 12;<br /> end<br /> diff.day = diff.day + get_days_in_month (a.year, a.month); -- borrow all of the days from the *previous* month<br /> end<br /> <br /> diff.month = a.month - b.month;<br /> if diff.month &lt; 0 then<br /> a.year = a.year - 1; -- borrow a month from years<br /> diff.month = diff.month + 12;<br /> end<br /> diff.year = a.year - b.year;<br /> return diff;<br /> end<br /> <br /> --[[--------------------------&lt; I S _ V A L I D _ D A T E _ T I M E &gt;------------------------------------------<br /> <br /> Validate date/time. Also, determine if we have all of the necessary date/time componants. Minimal required<br /> date/time is |year=.<br /> <br /> For dates, these are required (all other variations emit an error message):<br /> |year= or<br /> |year= |month= or<br /> |year= |month= |day=<br /> <br /> If time is included, these are required (all other variations emit an error message):<br /> |hour= or<br /> |hour= |minute= or<br /> |hour= |minute= |second=<br /> <br /> ]]<br /> <br /> local function is_valid_date_time (year, month, day, hour, minute, second)<br /> if not year or (not month and day) then -- must have YMD, YM, or Y<br /> return false;<br /> end<br /> <br /> year = tonumber (year);<br /> if not year or 1582 &gt; year or 9999 &lt; year then return false; end -- must be four digits in gregorian calander<br /> <br /> if month then<br /> month = tonumber (month);<br /> if not month or 1 &gt; month or 12 &lt; month then return false; end -- 1 to 12<br /> end<br /> if day then<br /> day = tonumber (day);<br /> if not day or 1 &gt; day or get_days_in_month (year, month) &lt; day then -- 1 to 28, 29, 30, or 31 depending on month<br /> return false;<br /> end<br /> end<br /> <br /> if ((minute or second) and not hour) or (not minute and second) then -- must have H:M:S or H:M or H or none at all<br /> return false;<br /> end<br /> <br /> if hour then<br /> hour = tonumber (hour);<br /> if not hour or 0 &gt; hour or 23 &lt; hour then return false; end -- 0 to 23<br /> end<br /> if minute then<br /> minute = tonumber (minute);<br /> if not minute or 0 &gt; minute or 59 &lt; minute then return false; end -- 0 to 59<br /> end<br /> if second then<br /> second = tonumber (second);<br /> if not second or 0 &gt; second or 59 &lt; second then return false; end -- 0 to 59<br /> end<br /> <br /> return true;<br /> <br /> end<br /> <br /> --[[--------------------------&lt; M A I N &gt;----------------------------------------------------------------------<br /> <br /> Supported parameters:<br /> date and time parameters:<br /> |year= (required), |month=, |day=<br /> |hour=, |minute=, |second=<br /> |utc offset=<br /> |duration=<br /> |duration unit=<br /> <br /> presentation parameters:<br /> |color=<br /> <br /> wrapping-text parameters:<br /> |event lead= – not yet supported - text ahead of countdown text while event is in progress; countdown text is time to end of event; default is static_text.ends<br /> |event tail= – not yet supported - text that follows countdown text while event is in progress; default is empty string<br /> |expired= - not yet supported - display text when event is in the past; default is static_text.passed; when |duration= is set then default is static_text.ended<br /> |lead= – not yet supported - text ahead of countdown text; default is static_text.begins; overridden by |event lead= while event is in progress;<br /> |tail= – not yet supported - text that follows countdown text; default is empty string; overridden by |event tail= while event is in progress<br /> <br /> ]]<br /> <br /> function p.main(frame)<br /> local args = getArgs(frame)<br /> <br /> if false == is_valid_date_time (args.year, args.month, args.day, args.hour, args.minute, args.second) then -- validate our inputs; minimal requirement is |year=<br /> return static_text.invlaid;<br /> end<br /> -- convert event time parameters to seconds; use default January 1 @ 0h for defaults if not provided<br /> local event = os.time({year=args.year, month=args.month or 1, day=args.day or 1, hour=args.hour or 0, min=args.minute, sec=args.second}); -- convert to seconds<br /> if args[&#039;utc offset&#039;] then<br /> event = event - utc_offset(args[&#039;utc offset&#039;]); -- adjust event time to UTC from local time<br /> end<br /> <br /> if &#039;none&#039; == args.expired then<br /> args.expired = &#039;&#039;;<br /> end<br /> <br /> if event &lt; os.time () then -- if event time is in the past<br /> if not args.duration then<br /> return args.expired or static_text.passed; -- if the event start time has passed, we&#039;re done<br /> else<br /> event = event + duration (args.duration, args[&#039;duration unit&#039;]); -- calculate event ending time<br /> if event &lt; os.time () then<br /> return args.expired or static_text.ended; -- if the event start time + duration has passed, we&#039;re done<br /> end<br /> end<br /> else -- here when event has not yet started or occured<br /> if not args.lead then<br /> if args.duration then<br /> args.lead = static_text.begins; -- default lead text when |duration= set but |lead= not set<br /> else<br /> args.lead = static_text.eventtime; -- default lead text when |duration= and |lead= not set<br /> end<br /> end<br /> args.duration = nil; -- event not yet started; unset so that we render text around the countdown correctly<br /> end<br /> <br /> local today = os.date (&#039;*t&#039;); --fetch table of current date time parameters from the server<br /> local event_time = os.date (&#039;*t&#039;, event); --fetch table of event date time parameters from the server<br /> local hms_til_start = diff_time (event_time, today) -- table of time difference (future time - current time)<br /> if hms_til_start.hour &lt; 0 then -- will be negative if we need to borrow hours from day<br /> hms_til_start.hour = hms_til_start.hour + 24; -- borrow a day&#039;s worth of hours from event start date<br /> event_time.day = event_time.day - 1;<br /> end<br /> <br /> local ymd_til_start = diff_date (event_time, today) -- table of date difference (future date - current date)<br /> <br /> local result = {} -- results table with some formatting; values less than one are not added to the table <br /> table.insert (result, format_unit (ymd_til_start.year, &#039;year&#039;)); -- add date parameters<br /> table.insert (result, format_unit (ymd_til_start.month, &#039;month&#039;));<br /> table.insert (result, format_unit (ymd_til_start.day, &#039;day&#039;));<br /> <br /> local count = #result; -- zero if less than 24 hours to event; when less than 24 hours display all non-zero time units<br /> table.insert (result, format_unit (hms_til_start.hour, &#039;hour&#039;)); -- always include hours if it is not zero<br /> if args.hour or 0 == count then -- if event start hour provided in template, show non-zero minutes<br /> table.insert (result, format_unit (hms_til_start.min, &#039;minute&#039;));<br /> end<br /> if (args.minute and args.hour) or 0 == count then -- if event start hour and minute provided in template, show non-zero seconds<br /> table.insert (result, format_unit (hms_til_start.sec, &#039;second&#039;));<br /> end<br /> <br /> result = table.concat (result, &#039;, &#039;);<br /> result = mw.ustring.gsub(result, &#039;(%d+)&#039;, &#039;&lt;span style=&quot;color: &#039; .. (args.color or &#039;blue&#039;) .. &#039;; font-weight: bold;&quot;&gt;%1&lt;/span&gt;&#039;)<br /> local refreshLink = mw.title.getCurrentTitle():fullUrl{action = &#039;purge&#039;}<br /> refreshLink = mw.ustring.format(&#039; &lt;sup&gt;[&lt;span class=&quot;plainlinks&quot;&gt;[%s refresh]&lt;/span&gt;]&lt;/sup&gt;&#039;, refreshLink)<br /> <br /> if not args.duration then -- will be nil if event hasn&#039;t started yet or |duration= not specified<br /> args.lead = args.lead or static_text.eventtime; -- use default begins text<br /> else<br /> args.lead = args[&#039;event lead&#039;] or static_text.ends; -- event has started use |event lead= text or default ends text<br /> args.tail = args[&#039;event tail&#039;]; -- and use |event tail= text<br /> end<br /> <br /> if &#039;none&#039; == args.lead then -- here, if either arg.lead and args[&#039;event lead&#039;] were set to keyword&#039;none&#039;<br /> args.lead = &#039;&#039;; -- set lead text to empty string<br /> elseif args.lead then<br /> args.lead = args.lead .. &#039; &#039;; -- add a space<br /> end<br /> <br /> if args.tail then<br /> args.tail = &#039; &#039; .. args.tail; -- add a space<br /> else<br /> args.tail = &#039;&#039;; -- empty string for concatenation<br /> end<br /> <br /> return args.lead .. result .. args.tail .. refreshLink;<br /> end<br /> <br /> return p</div> Trappist the monk