Winter calendar
Winter 2
<nowinter>
{{#nocache}} {{# || Initialize variables and functions }} {{#function | ShowDay || <span style="background-color:#cccccc;;padding:.25em; margin:.5em; margin-bottom:1.5em;margin-right:.5em; width:2em;">{{#1}}</span> }} {{#array | month | 31 | 28 | 31 | 30 | 31 | 30 | 31 | 31 | 30 | 31 | 30 | 31 }} {{#days_in_month | @= | {{#month | {{#op {{CURRENTMONTH}} - 1 }} }} }} {{#WeekStart | @= | {{#op | 8 - ( ( {{CURRENTDAY}} - {{CURRENTDOW}} ) mod 7 ) }} }} {{# || Draw calendar }} <div style="border:1px solid black;width:22em;text-align:center;padding-bottom:.5em"> {{#showday | {{CURRENTMONTHNAME}} {{CURRENTYEAR}} }} {{#for | {{#i = 0}} || {{#i | < | {{#WeekStart}} }} || {{#i ++}} || {{#ShowDay| 00 }} }}{{#for | {{#day = 1}} || {{#day | <= | {{#days_in_month}} }} || {{#null}} || {{#for | {{#i | = | {{#WeekStart}} }} || {{#i < 7}} || {{#i ++}} {{#day ++}} || {{#ShowDay | {{#if | {{#day < 10}} || 0}}{{#if | {{#day | > | {{#days_in_month}} }} || 00 || {{#day}} }} }} }} <div style="clear:left"> </div> {{#WeekStart @= 0}} }} </div>
Winter 1.5
{{#nocache}} {{#setvar| MONTH_01 | 31 }} {{#setvar| MONTH_02 | 28 }} {{#setvar| MONTH_03 | 31 }} {{#setvar| MONTH_04 | 30 }} {{#setvar| MONTH_05 | 31 }} {{#setvar| MONTH_06 | 30 }} {{#setvar| MONTH_07 | 31 }} {{#setvar| MONTH_08 | 31 }} {{#setvar| MONTH_09 | 30 }} {{#setvar| MONTH_10 | 31 }} {{#setvar| MONTH_11 | 30 }} {{#setvar| MONTH_12 | 31 }} {{#setvar | days_in_month | {{#var|MONTH_{{CURRENTMONTH}} }} }} {{#function | ShowDay || <span style="background-color:#cccccc;;padding:.25em;margin:.5em; margin-bottom:1.5em;margin-right:.5em; width:2em;">{{#1}}</span> }} {{#setvar| WeekStart | {{#op | 8 | - | {{#op | {{#op | {{CURRENTDAY}} | - | {{CURRENTDOW}} }} | mod | 7 }} }} }} <div style="border:1px solid black;width:22em;text-align:center;padding-bottom:.5em"> {{#showday | {{CURRENTMONTHNAME}} {{CURRENTYEAR}} }} {{#for | {{#setvar|i|0}} || {{#i| < |{{#WeekStart}} }} || {{#i|++}} || {{#ShowDay| 00 }} }}{{#for | {{#setvar | day | 1}} || {{#day | <= | {{#days_in_month}} }} || {{#null}} || {{#for | {{#setvar|i|{{#WeekStart}}}} || {{#i | < | 7}} || {{#i|++}} {{#day|++}} || {{#ShowDay | {{#if|{{#day|<|10}}|0}}{{#if|{{#day | > | {{#days_in_month}}}}| 00 |{{#day}}}} }} }} <div style="clear:left"> </div> {{#setvar|WeekStart|0}}}} </div>
</nowinter>
Output
{{#nocache}}
{{# || Initialize variables and functions }}
{{#function | ShowDay || {{#1}} }} {{#array | month | 31 | 28 | 31 | 30 | 31 | 30 | 31 | 31 | 30 | 31 | 30 | 31 }} {{#days_in_month | @= | {{#month | {{#op 05 - 1 }} }} }} {{#WeekStart | @= | {{#op | 8 - ( ( 13 - 1 ) mod 7 ) }} }}
{{# || Draw calendar }}
{{#showday | May 2024 }}
{{#for | {{#i = 0}} || {{#i | < | {{#WeekStart}} }} || {{#i ++}} || {{#ShowDay| 00 }} }}{{#for | {{#day = 1}} || {{#day | <= | {{#days_in_month}} }} || {{#null}} || {{#for | {{#i | = | {{#WeekStart}} }} || {{#i < 7}} || {{#i ++}} {{#day ++}} || {{#ShowDay | {{#if | {{#day < 10}} || 0}}{{#if | {{#day | > | {{#days_in_month}} }} || 00 || {{#day}} }} }} }}
{{#WeekStart @= 0}}
}}