Module:Age/doc
This is the documentation page for Module:Age
This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
This Lua module is used on many pages, so changes to it will be widely noticed. Please test any changes in the module's /sandbox or /testcases subpages. Please consider discussing changes on the talk page before implementing them. |
Templates supported
Module:Age implements the following templates:
Template | Required wikitext |
---|---|
{{extract}} | {{#invoke:age|extract}}
|
{{gregorian serial date}} | {{#invoke:age|gsd}}
|
{{time interval}} | {{#invoke:age|time_interval}}
|
{{age in days}} | {{#invoke:age|age_generic|template=age_days}}
|
{{age in days nts}} | {{#invoke:age|age_generic|template=age_days_nts}}
|
{{duration in days}} | {{#invoke:age|age_generic|template=duration_days}}
|
{{duration in days nts}} | {{#invoke:age|age_generic|template=duration_days_nts}}
|
{{age}} | {{#invoke:age|age_generic|template=age_full_years}}
|
{{age nts}} | {{#invoke:age|age_generic|template=age_full_years_nts}}
|
{{age in years}} | {{#invoke:age|age_generic|template=age_in_years}}
|
{{age in years nts}} | {{#invoke:age|age_generic|template=age_in_years_nts}}
|
{{age for infant}} | {{#invoke:age|age_generic|template=age_infant}}
|
{{age in months}} | {{#invoke:age|age_generic|template=age_m}}
|
{{age in weeks}} | {{#invoke:age|age_generic|template=age_w}}
|
{{age in weeks and days}} | {{#invoke:age|age_generic|template=age_wd}}
|
{{age in years and days}} | {{#invoke:age|age_generic|template=age_yd}}
|
{{age in years and days nts}} | {{#invoke:age|age_generic|template=age_yd_nts}}
|
{{age in years and months}} | {{#invoke:age|age_generic|template=age_ym}}
|
{{age in years, months and days}} | {{#invoke:age|age_generic|template=age_ymd}}
|
{{age in years, months, weeks and days}} | {{#invoke:age|age_generic|template=age_ymwd}}
|
{{birth date and age}} | {{#invoke:age|birth_date_and_age}}
|
Redirects
Template | Redirects to |
---|---|
{{hla}} | {{age in years, months and days}} |
{{age in months, weeks and days}} | {{age in years, months, weeks and days}} |
{{bda}} | {{birth date and age}} |
{{gsd}} | {{gregorian serial date}} |
The age templates expect the older date to be first. The implementations of age_in_years
and age_in_years_nts
display an error message if that is not the case. If similar checking is wanted for other templates, negative=error
can be added to the invoke. For example, {{age}} might use:
{{#invoke:age|age_generic|template=age_full_years|negative=error}}
If negative=error
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:
{{age in years and months|year1=2001|month1=1|day1=10|year2=2012|month2=2|day2=20}}
→ 11 years, 1 month{{age in years and months|year=2001|month=1|day=10|year2=2012|month2=2|day2=20}}
→ 11 years, 1 month{{age in years and months|2001|1|10|2012|2|20}}
→ 11 years, 1 month{{age in years and months|2001-1-10|2012-2-20}}
→ 11 years, 1 month{{age in years and months|10 Jan 2001|20 Feb 2012}}
→ 11 years, 1 month{{age in years and months|January 10, 2001|Feb 20, 2012}}
→ 11 years, 1 month
If the first or second date is omitted, the current date is used. For example:
{{age in years and months|year2=2012|month2=2|day2=20}}
→ −12 years, 9 months{{age in years and months||||2012|2|20}}
→ −12 years, 9 months{{age in years and months||2012-2-20}}
→ −12 years, 9 months{{age in years and months||20 Feb 2012}}
→ −12 years, 9 months{{age in years and months||Feb 20, 2012}}
→ −12 years, 9 months{{age in years and months|year1=2001|month1=1|day1=10}}
→ 23 years, 10 months{{age in years and months|year=2001|month=1|day=10}}
→ 23 years, 10 months{{age in years and months|2001|1|10}}
→ 23 years, 10 months{{age in years and months|2001-1-10}}
→ 23 years, 10 months{{age in years and months|10 Jan 2001}}
→ 23 years, 10 months{{age in years and months|January 10, 2001}}
→ 23 years, 10 months
Parameters
The following options are available:
Parameter | Description |
---|---|
duration=on |
The finishing date is included in the result; that adds one day to the age. |
fix=on |
Adjust invalid time units. See Template:Extract#Fix. |
format=commas |
A value of 1,000 or more is displayed with commas. |
format=raw |
Numbers are displayed without commas and negative numbers are displayed with a hyphen for {{#expr}} . In addition, {{age}} outputs a plain number and will not include a span to indicate if the result relies on the current date.
|
format=cardinal |
Display the resulting number using words such as "five" instead of 5. See below. |
format=ordinal |
Display the resulting number using words such as "fifth" instead of 5. See below. |
range=dash |
Accept a year only, or a year and month only, and show a range of ages with an en dash (–). |
range=yes |
Accept a year or year/month, and show the range with "or". |
range=no |
Accept a year only, or year/month, but show only a single age as if full dates had been entered. |
round=on |
The age is rounded to the nearest least-significant time unit. |
sc=on |
A serial comma is used (only useful when three or more values are displayed). |
sc=yes |
Same as sc=on .
|
show=hide |
The age is not displayed; may be useful with sortable=on .
|
sortable=on |
Insert a hidden sort key before the result (for use in sortable tables). |
sortable=table |
Insert a sort key using table syntax data-sort-value="value"| .
|
sortable=debug |
Same as sortable=on but the sort key is displayed for testing.
|
sortable=off |
No sort key (can override the default for a template like {{age nts}}). |
Examples using the range
parameter follow.
{{age in years and months|year=2001|month=1|year2=2012|month2=2|range=yes}}
→ 11 years, 0 or 1 month{{age in years and months|2001|1||2012|2|range=yes}}
→ 11 years, 0 or 1 month{{age in years and months|Jan 2001|Feb 2012|range=yes}}
→ 11 years, 0 or 1 month{{age in years and months|Jan 2001|Feb 2012|range=dash}}
→ 11 years, 0–1 month{{age in years and months|Jan 2001|Feb 2012|range=no}}
→ 11 years, 1 month (assume 1 Jan 2001 to 1 Feb 2012){{age in years and months|12 Jan 2001|Feb 2012|range=no}}
→ 11 years, 1 month (assume 12 Jan 2001 to 12 Feb 2012){{age in years and months|2001|2012|range=no}}
→ 11 years (assume 1 Jan 2001 to 1 Jan 2012){{age in years and months|2001|23 Feb 2012|range=no}}
→ 11 years (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.
{{age in years and months|10 Jan 2001|20 Feb 2012|sortable=debug}}
→ 7003405800000000000♠11 years, 1 month{{age in years and months|10 Jan 2001|6:00 am 20 Feb 2012|sortable=debug}}
→ 7003405825000000000♠11 years, 1 month{{age in years and months|10 Jan 2001|6:00 am 20 Feb 2012|sortable=debug|show=hide}}
→ 7003405825000000000♠
An extra day is added for a duration.
{{age in years and months|20 Jan 2001|19 Feb 2012}}
→ 11 years (one day short of 11 years, 1 month){{age in years and months|20 Jan 2001|19 Feb 2012|duration=on}}
→ 11 years, 1 month
The least-significant time unit can be rounded.
{{age in years and months|20 Jan 2001|10 Feb 2012}}
→ 11 years{{age in years and months|20 Jan 2001|10 Feb 2012|round=on}}
→ 11 years, 1 month (round to nearest month)
Large numbers can be formatted with commas.
{{age in years and months|120|2012|format=commas|range=yes}}
→ 1,891 or 1,892 years{{age in years and months|120|2012|format=commas|range=dash}}
→ 1,891–1,892 years
Spelling numbers
The templates that use age_generic
can display numbers in words rather than using numerals. The result can be a cardinal number (such as "five") or an ordinal number (such as "fifth"). The first letter can be in uppercase, and US spelling of numbers can be used. Examples:
{{age|1898|01|01|2018|02|01|format=cardinal}}
→ one hundred and twenty{{age|1898|01|01|2018|02|01|format=cardinal_us}}
→ one hundred twenty{{age|1898|01|01|2018|02|01|format=Cardinal}}
→ One hundred and twenty{{age|1898|01|01|2018|02|01|format=Cardinal_us}}
→ One hundred twenty{{age|1898|01|01|2018|02|01|format=Ordinal}}
→ One hundred and twentieth{{age|1898|01|01|2018|02|01|format=Ordinal_us}}
→ One hundred twentieth{{age|1898|01|01|2018|02|01|format=ordinal}}
→ one hundred and twentieth{{age|1898|01|01|2018|02|01|format=ordinal_us}}
→ one hundred twentieth{{age|1980|1990|range=yes|format=Cardinal}}
→ Nine or ten{{age in years, months and days|April 1980|1995|format=Cardinal|range=yes}}
→ Fourteen or fifteen years
See also
- {{time interval}} • This template supports all age/duration calculations and provides more options such as abbreviating or omitting units.