|
|
| Line 1: |
Line 1: |
| {{documentation subpage}}
| | - |
| {{Module rating|protected}}
| |
| {{High-use|demo=Module:{{ROOTPAGENAME}}}}
| |
| {{lua|Module:ConvertNumeric|Module:Date}}
| |
| == Templates supported ==
| |
| [[Module:Age]] implements the following templates:
| |
| {| class="wikitable"
| |
| ! Template !! Required wikitext
| |
| |-
| |
| | {{tl|extract}} || <code><nowiki>{{#invoke:age|extract}}</nowiki></code>
| |
| |-
| |
| | {{tl|gregorian serial date}} || <code><nowiki>{{#invoke:age|gsd}}</nowiki></code>
| |
| |-
| |
| | {{tl|time interval}} || <code><nowiki>{{#invoke:age|time_interval}}</nowiki></code>
| |
| |-
| |
| | {{tl|age in days}} || <code><nowiki>{{#invoke:age|age_generic|template=age_days}}</nowiki></code>
| |
| |-
| |
| | {{tl|age in days nts}} || <code><nowiki>{{#invoke:age|age_generic|template=age_days_nts}}</nowiki></code>
| |
| |-
| |
| | {{tl|duration in days}} || <code><nowiki>{{#invoke:age|age_generic|template=duration_days}}</nowiki></code>
| |
| |-
| |
| | {{tl|duration in days nts}} || <code><nowiki>{{#invoke:age|age_generic|template=duration_days_nts}}</nowiki></code>
| |
| |-
| |
| | {{tl|age}} || <code><nowiki>{{#invoke:age|age_generic|template=age_full_years}}</nowiki></code>
| |
| |-
| |
| | {{tl|age nts}} || <code><nowiki>{{#invoke:age|age_generic|template=age_full_years_nts}}</nowiki></code>
| |
| |-
| |
| | {{tl|age in years}} || <code><nowiki>{{#invoke:age|age_generic|template=age_in_years}}</nowiki></code>
| |
| |-
| |
| | {{tl|age in years nts}} || <code><nowiki>{{#invoke:age|age_generic|template=age_in_years_nts}}</nowiki></code>
| |
| |-
| |
| | {{tl|age for infant}} || <code><nowiki>{{#invoke:age|age_generic|template=age_infant}}</nowiki></code>
| |
| |-
| |
| | {{tl|age in months}} || <code><nowiki>{{#invoke:age|age_generic|template=age_m}}</nowiki></code>
| |
| |-
| |
| | {{tl|age in weeks}} || <code><nowiki>{{#invoke:age|age_generic|template=age_w}}</nowiki></code>
| |
| |-
| |
| | {{tl|age in weeks and days}} || <code><nowiki>{{#invoke:age|age_generic|template=age_wd}}</nowiki></code>
| |
| |-
| |
| | {{tl|age in years and days}} || <code><nowiki>{{#invoke:age|age_generic|template=age_yd}}</nowiki></code>
| |
| |-
| |
| | {{tl|age in years and days nts}} || <code><nowiki>{{#invoke:age|age_generic|template=age_yd_nts}}</nowiki></code>
| |
| |-
| |
| | {{tl|age in years and months}} || <code><nowiki>{{#invoke:age|age_generic|template=age_ym}}</nowiki></code>
| |
| |-
| |
| | {{tl|age in years, months and days}} || <code><nowiki>{{#invoke:age|age_generic|template=age_ymd}}</nowiki></code>
| |
| |-
| |
| | {{tl|age in years, months, weeks and days}} || <code><nowiki>{{#invoke:age|age_generic|template=age_ymwd}}</nowiki></code>
| |
| |-
| |
| | {{tl|birth date and age}} || <code><nowiki>{{#invoke:age|birth_date_and_age}}</nowiki></code>
| |
| |-
| |
| | {{tl|death date and age}} || <code><nowiki>{{#invoke:age|death_date_and_age}}</nowiki></code>
| |
| |}
| |
| | |
| '''Redirects'''
| |
| {| class="wikitable"
| |
| ! Template !! Redirects to
| |
| |-
| |
| | {{no redirect|Template:Ayd|{{ayd}}}} || {{tl|age in years and days nts}}
| |
| |-
| |
| | {{no redirect|Template:Hla|{{hla}}}} || {{tl|age in years, months and days}}
| |
| |-
| |
| | {{no redirect|Template:Age in months, weeks and days|{{age in months, weeks and days}}}} || {{tl|age in years, months, weeks and days}}
| |
| |-
| |
| | {{no redirect|Template:Bda|{{bda}}}} || {{tl|birth date and age}}
| |
| |-
| |
| | {{no redirect|Template:Dda|{{dda}}}} || {{tl|death date and age}}
| |
| |-
| |
| | {{no redirect|Template:Gsd|{{gsd}}}} || {{tl|gregorian serial date}}
| |
| |}
| |
| | |
| The age templates expect the older date to be first. The implementations of <code>age_in_years</code> and <code>age_in_years_nts</code> display an error message if that is not the case. If similar checking is wanted for other templates, <code>negative=error</code> can be added to the invoke. For example, {{tl|age}} might use:
| |
| *<code><nowiki>{{#invoke:age|age_generic|template=age_full_years|negative=error}}</nowiki></code>
| |
| If <code>negative=error</code> does not apply, a negative difference is indicated with a minus sign (−).
| |
| | |
| == Date formats ==
| |
| Dates can use numbered or named parameters to specify year/month/day. Alternatively, a full date can be entered in a variety of formats. For example:
| |
| *<code><nowiki>{{age in years and months|year1=2001|month1=1|day1=10|year2=2012|month2=2|day2=20}}</nowiki></code> → {{age in years and months|year1=2001|month1=1|day1=10|year2=2012|month2=2|day2=20}}
| |
| *<code><nowiki>{{age in years and months|year=2001|month=1|day=10|year2=2012|month2=2|day2=20}}</nowiki></code> → {{age in years and months|year=2001|month=1|day=10|year2=2012|month2=2|day2=20}}
| |
| *<code><nowiki>{{age in years and months|2001|1|10|2012|2|20}}</nowiki></code> → {{age in years and months|2001|1|10|2012|2|20}}
| |
| *<code><nowiki>{{age in years and months|2001-1-10|2012-2-20}}</nowiki></code> → {{age in years and months|2001-1-10|2012-2-20}}
| |
| *<code><nowiki>{{age in years and months|10 Jan 2001|20 Feb 2012}}</nowiki></code> → {{age in years and months|10 Jan 2001|20 Feb 2012}}
| |
| *<code><nowiki>{{age in years and months|January 10, 2001|Feb 20, 2012}}</nowiki></code> → {{age in years and months|January 10, 2001|Feb 20, 2012}}
| |
| | |
| If the first or second date is omitted, the current date is used. For example:
| |
| *<code><nowiki>{{age in years and months|year2=2012|month2=2|day2=20}}</nowiki></code> → {{age in years and months|year2=2012|month2=2|day2=20}}
| |
| *<code><nowiki>{{age in years and months||||2012|2|20}}</nowiki></code> → {{age in years and months||||2012|2|20}}
| |
| *<code><nowiki>{{age in years and months||2012-2-20}}</nowiki></code> → {{age in years and months||2012-2-20}}
| |
| *<code><nowiki>{{age in years and months||20 Feb 2012}}</nowiki></code> → {{age in years and months||20 Feb 2012}}
| |
| *<code><nowiki>{{age in years and months||Feb 20, 2012}}</nowiki></code> → {{age in years and months||Feb 20, 2012}}
| |
| *<code><nowiki>{{age in years and months|year1=2001|month1=1|day1=10}}</nowiki></code> → {{age in years and months|year1=2001|month1=1|day1=10}}
| |
| *<code><nowiki>{{age in years and months|year=2001|month=1|day=10}}</nowiki></code> → {{age in years and months|year=2001|month=1|day=10}}
| |
| *<code><nowiki>{{age in years and months|2001|1|10}}</nowiki></code> → {{age in years and months|2001|1|10}}
| |
| *<code><nowiki>{{age in years and months|2001-1-10}}</nowiki></code> → {{age in years and months|2001-1-10}}
| |
| *<code><nowiki>{{age in years and months|10 Jan 2001}}</nowiki></code> → {{age in years and months|10 Jan 2001}}
| |
| *<code><nowiki>{{age in years and months|January 10, 2001}}</nowiki></code> → {{age in years and months|January 10, 2001}}
| |
| | |
| == Parameters ==
| |
| The following options are available:
| |
| {| class="wikitable"
| |
| ! Parameter !! Description
| |
| |-
| |
| | <code>duration=on</code> || The finishing date is included in the result; that adds one day to the age.
| |
| |-
| |
| | <code>fix=on</code> || Adjust invalid time units. See [[Template:Extract#Fix]].
| |
| |-
| |
| | <code>format=commas</code> || A value of 1,000 or more is displayed with commas.
| |
| |-
| |
| | <code>format=raw</code> || Numbers are displayed without commas and negative numbers are displayed with a hyphen for <code><nowiki>{{#expr}}</nowiki></code>. In addition, {{tl|age}} outputs a plain number and will not include a span to indicate if the result relies on the current date.
| |
| |-
| |
| | <code>format=cardinal</code> || Display the resulting number using words such as "five" instead of 5. See [[#Spelling numbers|below]].
| |
| |-
| |
| | <code>format=ordinal</code> || Display the resulting number using words such as "fifth" instead of 5. See [[#Spelling numbers|below]].
| |
| |-
| |
| | <code>prefix=''text''</code> || Insert the given ''text'' before the result but after any sort key. For example, <code><nowiki>{{age|23 July 1910|14 July 1976|prefix=about|sortable=on}}</nowiki></code> outputs a hidden sort key followed by "about 65".
| |
| |-
| |
| | <code>range=dash</code> || Accept a year only, or a year and month only, and show a range of ages with an [[Dash#En dash|en dash]] (–).
| |
| |-
| |
| | <code>range=yes</code> || Accept a year or year/month, and show the range with "or".
| |
| |-
| |
| | <code>range=no</code> || Accept a year only, or year/month, but show only a single age as if full dates had been entered.
| |
| |-
| |
| | <code>round=on</code> || The age is rounded to the nearest least-significant time unit.
| |
| |-
| |
| | <code>sc=on</code> || A [[serial comma]] is used (only useful when three or more values are displayed).
| |
| |-
| |
| | <code>sc=yes</code> || Same as <code>sc=on</code>.
| |
| |-
| |
| | <code>show=hide</code> || The age is not displayed; may be useful with <code>sortable=on</code>.
| |
| |-
| |
| | <code>sortable=on</code> || Insert a hidden sort key before the result (for use in [[WP:SORT|sortable tables]]).
| |
| |-
| |
| | <code>sortable=table</code> || Insert a sort key using table syntax <code>data-sort-value="''value''"|</code>.
| |
| |-
| |
| | <code>sortable=debug</code> || Same as <code>sortable=on</code> but the sort key is displayed for testing.
| |
| |-
| |
| | <code>sortable=off</code> || No sort key (can override the default for a template like {{tl|age nts}}).
| |
| |}
| |
| | |
| Examples using the <code>range</code> parameter follow.
| |
| *<code><nowiki>{{age in years and months|year=2001|month=1|year2=2012|month2=2|range=yes}}</nowiki></code> → {{age in years and months|year=2001|month=1|year2=2012|month2=2|range=yes}}
| |
| *<code><nowiki>{{age in years and months|2001|1||2012|2|range=yes}}</nowiki></code> → {{age in years and months|2001|1||2012|2|range=yes}}
| |
| *<code><nowiki>{{age in years and months|Jan 2001|Feb 2012|range=yes}}</nowiki></code> → {{age in years and months|Jan 2001|Feb 2012|range=yes}}
| |
| *<code><nowiki>{{age in years and months|Jan 2001|Feb 2012|range=dash}}</nowiki></code> → {{age in years and months|Jan 2001|Feb 2012|range=dash}}
| |
| *<code><nowiki>{{age in years and months|Jan 2001|Feb 2012|range=no}}</nowiki></code> → {{age in years and months|Jan 2001|Feb 2012|range=no}} {{green|1=(assume 1 Jan 2001 to 1 Feb 2012)}}
| |
| *<code><nowiki>{{age in years and months|12 Jan 2001|Feb 2012|range=no}}</nowiki></code> → {{age in years and months|12 Jan 2001|Feb 2012|range=no}} {{green|1=(assume 12 Jan 2001 to 12 Feb 2012)}}
| |
| *<code><nowiki>{{age in years and months|2001|2012|range=no}}</nowiki></code> → {{age in years and months|2001|2012|range=no}} {{green|1=(assume 1 Jan 2001 to 1 Jan 2012)}}
| |
| *<code><nowiki>{{age in years and months|2001|23 Feb 2012|range=no}}</nowiki></code> → {{age in years and months|2001|23 Feb 2012|range=no}} {{green|1=(assume 23 Feb 2001 to 23 Feb 2012)}}
| |
| | |
| The sort key is based on the age in days, and fractions of a day if a time is specified.
| |
| *<code><nowiki>{{age in years and months|10 Jan 2001|20 Feb 2012|sortable=debug}}</nowiki></code> → {{age in years and months|10 Jan 2001|20 Feb 2012|sortable=debug}}
| |
| *<code><nowiki>{{age in years and months|10 Jan 2001|6:00 am 20 Feb 2012|sortable=debug}}</nowiki></code> → {{age in years and months|10 Jan 2001|6:00 am 20 Feb 2012|sortable=debug}}
| |
| *<code><nowiki>{{age in years and months|10 Jan 2001|6:00 am 20 Feb 2012|sortable=debug|show=hide}}</nowiki></code> → {{age in years and months|10 Jan 2001|6:00 am 20 Feb 2012|sortable=debug|show=hide}}
| |
| | |
| An extra day is added for a duration.
| |
| *<code><nowiki>{{age in years and months|20 Jan 2001|19 Feb 2012}}</nowiki></code> → {{age in years and months|20 Jan 2001|19 Feb 2012}} {{green|1=(one day short of 11 years, 1 month)}}
| |
| *<code><nowiki>{{age in years and months|20 Jan 2001|19 Feb 2012|duration=on}}</nowiki></code> → {{age in years and months|20 Jan 2001|19 Feb 2012|duration=on}}
| |
| | |
| The least-significant time unit can be rounded.
| |
| *<code><nowiki>{{age in years and months|20 Jan 2001|10 Feb 2012}}</nowiki></code> → {{age in years and months|20 Jan 2001|10 Feb 2012}}
| |
| *<code><nowiki>{{age in years and months|20 Jan 2001|10 Feb 2012|round=on}}</nowiki></code> → {{age in years and months|20 Jan 2001|10 Feb 2012|round=on}} {{green|1=(round to nearest month)}}
| |
| | |
| Large numbers can be formatted with commas.
| |
| *<code><nowiki>{{age in years and months|120|2012|format=commas|range=yes}}</nowiki></code> → {{age in years and months|120|2012|format=commas|range=yes}}
| |
| *<code><nowiki>{{age in years and months|120|2012|format=commas|range=dash}}</nowiki></code> → {{age in years and months|120|2012|format=commas|range=dash}}
| |
| | |
| == Spelling numbers ==
| |
| The templates that use <code>age_generic</code> can display numbers in words rather than using numerals. The result can be a [[Cardinal number (linguistics)|cardinal number]] (such as "five") or an [[Ordinal number (linguistics)|ordinal number]] (such as "fifth"). The first letter can be in uppercase, and US spelling of numbers can be used. Examples:
| |
| *<code><nowiki>{{age|1898|01|01|2018|02|01|format=cardinal}}</nowiki></code> → {{age|1898|01|01|2018|02|01|format=cardinal}}
| |
| *<code><nowiki>{{age|1898|01|01|2018|02|01|format=cardinal_us}}</nowiki></code> → {{age|1898|01|01|2018|02|01|format=cardinal_us}}
| |
| *<code><nowiki>{{age|1898|01|01|2018|02|01|format=Cardinal}}</nowiki></code> → {{age|1898|01|01|2018|02|01|format=Cardinal}}
| |
| *<code><nowiki>{{age|1898|01|01|2018|02|01|format=Cardinal_us}}</nowiki></code> → {{age|1898|01|01|2018|02|01|format=Cardinal_us}}
| |
| *<code><nowiki>{{age|1898|01|01|2018|02|01|format=Ordinal}}</nowiki></code> → {{age|1898|01|01|2018|02|01|format=Ordinal}}
| |
| *<code><nowiki>{{age|1898|01|01|2018|02|01|format=Ordinal_us}}</nowiki></code> → {{age|1898|01|01|2018|02|01|format=Ordinal_us}}
| |
| *<code><nowiki>{{age|1898|01|01|2018|02|01|format=ordinal}}</nowiki></code> → {{age|1898|01|01|2018|02|01|format=ordinal}}
| |
| *<code><nowiki>{{age|1898|01|01|2018|02|01|format=ordinal_us}}</nowiki></code> → {{age|1898|01|01|2018|02|01|format=ordinal_us}}
| |
| *<code><nowiki>{{age|1980|1990|range=yes|format=Cardinal}}</nowiki></code> → {{age|1980|1990|range=yes|format=Cardinal}}
| |
| *<code><nowiki>{{age in years, months and days|April 1980|1995|format=Cardinal|range=yes}}</nowiki></code> → {{age in years, months and days|April 1980|1995|format=Cardinal|range=yes}}
| |
| | |
| == Tracking category ==
| |
| * {{clc|Pages using age template with invalid date}}
| |
| | |
| == Localization ==
| |
| Inputs and outputs can be localized to suit the language used. Examples are at [[:bn:Module:বয়স|bnwiki]] and [[:bs:Module:Age|bswiki]].
| |
| | |
| == See also ==
| |
| * {{tl|time interval}} • This template supports all age/duration calculations and provides more options such as abbreviating or omitting units.
| |
| | |
| <includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
| |
| <!-- Categories below this line, please; interwikis at Wikidata -->
| |
| [[Category:Modules that add a tracking category]]
| |
| | |
| }}</includeonly>
| |