Template:Weekday in month/doc

From MattWiki
Jump to: navigation, search

Usage

Code

Note that the order of the input can be reversed. The following give the same output.

{{Weekday in month|y|m|w|n}}
{{Weekday in month|n|w|m|y}}

Note that the year is optional. The following give the nth w-day of month m this year.

{{Weekday in month||m|w|n}}
{{Weekday in month|n|w|m}}
Parameters
y year numeric format, certain words, blank
  • Integers from 1000 to 9999 are accepted.
  • last year and next year are accepted.
  • The year is optional (defaults to the current year).
m month numeric format, spelt out in full or abbreviated
  • For numeric input a leading zero is optional.
  • Three-letter abbreviations are accepted (e.g. Jan, Feb, etc.)
w weekday numeric format, spelt out in full or abbreviated
  • Three-letter abbreviations are accepted (e.g. Sun, Mon, etc.)
  • The weekday numbering follows ISO practice (Sunday → 0, Monday → 1, ... Saturday → 6).
n count numeric format, spelt out in full or abbreviated
  • Positive integers give the nth Sunday/Monday ... Saturday of the month.
  • Negative integers give the nth last Sunday/Monday ... Saturday of the month.
  • Words are accepted (e.g. first, last, etc.)
  • Abbreviations are accepted (e.g. 1st, 2nd, etc.)
Examples
  • for the first Sunday of January 2000
    • n = first, 1st or 1
    • w = Sunday, Sun or 0
    • m = January, Jan or 1
    • y = 2000
  • for the first Monday of February 2006
    • n = first, 1st or 1
    • w = Monday, Mon or 1
    • m = February, Feb or 2
    • y = 2006
  • for the first Tuesday of March 2010
    • n = first, 1st or 1
    • w = Tuesday, Tue or 2
    • m = March, Mar or 3
    • y = 2010
  • for the second Tuesday of April 2012
    • n = second, 2nd or 2
    • w = Tuesday, Tue or 2
    • m = April, Apr or 4
    • y = 2012
  • for the second Tuesday of May 2020
    • n = second, 2nd or 2
    • w = Tuesday, Tue or 2
    • m = May or 5
    • y = 2020
  • for the second Wednesday of June 2100
    • n = second, 2nd or 2
    • w = Wednesday, Wed or 3
    • m = June, Jun or 6
    • y = 2100
  • for the third Wednesday of July this year
    • n = third, 3rd or 3
    • w = Wednesday, Wed or 3
    • m = July, Jul or 7
    • y = {{#time:Y}}, {{CURRENTYEAR}} or leave it blank
  • for the third Thursday of August this year
    • n = third, 3rd or 3
    • w = Thursday, Thu or 4
    • m = August, Aug or 8
    • y = {{#time:Y}}, {{CURRENTYEAR}} or leave it blank
  • for the last Thursday of September last year
    • n = last or -1
    • w = Thursday, Thu or 4
    • m = September, Sep or 9
    • y = {{#time:Y|last year}}, {{LASTYEAR}} or last year
  • for the last Friday of October last year
    • n = last or -1
    • w = Friday, Fri or 5
    • m = October, Oct or 10
    • y = {{#time:Y|last year}}, {{LASTYEAR}} or last year
  • for the second last Friday of November next year
    • n = second last, 2nd last or -2
    • w = Friday, Fri or 5
    • m = November, Nov or 11
    • y = {{#time:Y|next year}}, {{NEXTYEAR}} or next year
  • for the second last Saturday of December next year
    • n = second last, 2nd last or -2
    • w = Saturday, Sat or 6
    • m = December, Dec or 12
    • y = {{#time:Y|next year}}, {{NEXTYEAR}} or next year

Calculation

The template then gives j, the day of the month, as calculated by the following formulae.

j = 7×n − 6 + (ww1) mod 7 (for positive n)
j = t + 7×(n + 1) − (wtw) mod 7 (for negative n)

Where t is the last day of the month, wt is the ISO weekday number of the last day of the month, w1 is the ISO weekday number of the first day of the month and n and w are as defined above.

Examples

year MLK Jr Day (US) Presidents Day (US) Memorial Day (US) Labor Day (US) Columbus Day (US) Father's Day
(Australia)
Mother's Day
(many countries)
Thanksgiving
(Norfolk Island)
Melbourne Cup Day
(Australia)
3rd Monday in January 3rd Monday in February Last Monday in May 1st Monday in September 2nd Monday in October 1st Sunday in September 2nd Sunday in May last Wednesday of November first Tuesday in November
2012 16 January 20 February 28 May 3 September 8 October 7 September 13 May 28 November 6 November
{{weekday in month</br>|2012|1|1|3}} {{weekday in month</br>|3|1|2|2012}} {{weekday in month</br>|2012|5|1|-1}} {{weekday in month</br>|first|Monday</br>|September|2012}} {{weekday in month</br>|2nd|Mon|Oct|2012}} {{weekday in month</br>|1st|sun|oct|2012}} {{weekday in month</br>|2|sun|may|2012}} {{weekday in month</br>|last|Wed|Nov|2012}} {{weekday in month</br>|1st|Tue|Nov|2012}}
2013 21 January 18 February 27 May 2 September 14 October 6 September 12 May 27 November 5 November
{{weekday in month</br>|2013|1|1|3}} {{weekday in month</br>|3|1|2|2013}} {{weekday in month</br>|2013|5|1|-1}} {{weekday in month</br>|first|Monday</br>|September|2013}} {{weekday in month</br>|2nd|Mon|Oct|2013}} {{weekday in month</br>|1st|sun|oct|2013}} {{weekday in month</br>|2|sun|may|2013}} {{weekday in month</br>|last|Wed|Nov|2013}} {{weekday in month</br>|1st|Tue|Nov|2013}}
2014 20 January 17 February 26 May 1 September 13 October 5 September 11 May 26 November 4 November
{{weekday in month</br>|2014|1|1|3}} {{weekday in month</br>|3|1|2|2014}} {{weekday in month</br>|2014|5|1|-1}} {{weekday in month</br>|first|Monday</br>|September|2014}} {{weekday in month</br>|2nd|Mon|Oct|2014}} {{weekday in month</br>|1st|sun|oct|2014}} {{weekday in month</br>|2|sun|may|2014}} {{weekday in month</br>|last|Wed|Nov|2014}} {{weekday in month</br>|1st|Tue|Nov|2014}}
2015 19 January 16 February 25 May 7 September 12 October 4 September 10 May 25 November 3 November
{{weekday in month</br>|2015|1|1|3}} {{weekday in month</br>|3|1|2|2015}} {{weekday in month</br>|2015|5|1|-1}} {{weekday in month</br>|first|Monday</br>|September|2015}} {{weekday in month</br>|2nd|Mon|Oct|2015}} {{weekday in month</br>|1st|sun|oct|2015}} {{weekday in month</br>|2|sun|may|2015}} {{weekday in month</br>|last|Wed|Nov|2015}} {{weekday in month</br>|1st|Tue|Nov|2015}}
2016</br>(last year) 18 January 15 February 30 May 5 September 10 October 2 September 8 May 30 November 1 November
{{weekday in month</br>|2016|1|1|3}} {{weekday in month</br>|3|1|2|2016}} {{weekday in month</br>|2016|5|1|-1}} {{weekday in month</br>|first|Monday</br>|September|2016}} {{weekday in month</br>|2nd|Mon|Oct|2016}} {{weekday in month</br>|1st|sun|oct|2016}} {{weekday in month</br>|2|sun|may|2016}} {{weekday in month</br>|last|Wed|Nov|2016}} {{weekday in month</br>|1st|Tue|Nov|last year}}
2017</br>(this year) 16 January 20 February 29 May 4 September 9 October 1 September 14 May 29 November 7 November
{{weekday in month</br>|2017|1|1|3}} {{weekday in month</br>|3|1|2|2017}} {{weekday in month</br>|2017|5|1|-1}} {{weekday in month</br>|first|Monday</br>|September|2017}} {{weekday in month</br>|2nd|Mon|Oct|2017}} {{weekday in month</br>|1st|sun|oct|2017}} {{weekday in month</br>|2|sun|may|2017}} {{weekday in month</br>|last|Wed|Nov|2017}} {{weekday in month</br>|1st|Tue|Nov}}
2018</br>(next year) 15 January 19 February 28 May 3 September 8 October 7 September 13 May 28 November 6 November
{{weekday in month</br>|2018|1|1|3}} {{weekday in month</br>|3|1|2|2018}} {{weekday in month</br>|2018|5|1|-1}} {{weekday in month</br>|first|Monday</br>|September|2018}} {{weekday in month</br>|2nd|Mon|Oct|2018}} {{weekday in month</br>|1st|sun|oct|2018}} {{weekday in month</br>|2|sun|may|2018}} {{weekday in month</br>|last|Wed|Nov|2018}} {{weekday in month</br>|1st|Tue|Nov|next year}}

See also