Module:Age/doc: Difference between revisions
Created page with "-- Implement various "age of" and other date-related templates. local mtext = { -- Message and other text that should be localized. -- Also need to localize text in table names in function dateDifference. ['mt-bad-param2'] = 'Parameter $1=$2 is invalid', ['mt-bad-show'] = 'Parameter show=$1 is not supported here', ['mt-cannot-add'] = 'Cannot add "$1"', ['mt-conflicting-show'] = 'Parameter show=$1 conflicts with round=$2'..." |
No edit summary |
||
| 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> | |||
Revision as of 23:39, 10 January 2026
Lua error: expandTemplate: template loop detected.
| <translate> This module is [[<tvar name=1>Special:MyLanguage/Category:Modules subject to page protection</tvar>|subject to {{<tvar name=2>#if:</tvar>|cascading|page}} protection]].</translate> <translate> It is a highly visible module in use by a very large number of pages.</translate> <translate> Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is [[<tvar name=1>Special:MyLanguage/Project:Protected page</tvar>|protected]] from editing.</translate> |
| This Lua module is used on many pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
| This module depends on the following other modules: |
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}}
|
| {{death date and age}} | {{#invoke:age|death_date_and_age}}
|
Redirects
| Template | Redirects to |
|---|---|
| {{ayd}} | {{age in years and days nts}} |
| {{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}} |
| {{dda}} | {{death 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}}→ −13 years, 10 months{{age in years and months||||2012|2|20}}→ −13 years, 10 months{{age in years and months||2012-2-20}}→ −13 years, 10 months{{age in years and months||20 Feb 2012}}→ −13 years, 10 months{{age in years and months||Feb 20, 2012}}→ −13 years, 10 months{{age in years and months|year1=2001|month1=1|day1=10}}→ 25 years{{age in years and months|year=2001|month=1|day=10}}→ 25 years{{age in years and months|2001|1|10}}→ 25 years{{age in years and months|2001-1-10}}→ 25 years{{age in years and months|10 Jan 2001}}→ 25 years{{age in years and months|January 10, 2001}}→ 25 years
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. |
prefix=text |
Insert the given text before the result but after any sort key. For example, {{age|23 July 1910|14 July 1976|prefix=about|sortable=on}} outputs a hidden sort key followed by "about 65".
|
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
Tracking category
Localization
Inputs and outputs can be localized to suit the language used. Examples are at bnwiki and bswiki.
See also
- {{time interval}} • This template supports all age/duration calculations and provides more options such as abbreviating or omitting units.