This template develops the getDatePrecision() function from Module:WikidataIB for use in comparisons.

The getDatePrecision() function takes a property-ID (as the first unnamed parameter) and an entity-ID (as |qid=) and returns the precision of the first best date value for the given property of the given entity. If the entity-ID is not given, the entity-ID connected to the current page is used.

The precisions are an integer from 0 to 11, where the values are defined at mw:Wikibase/DataModel#Dates_and_times:

  • 0 - billion years, 1 - hundred million years, ..., 6 - millennia, 7 - century, 8 - decade, 9 - year, 10 - month, 11 - day

The getDatePrecision() function returns an empty string when there is no precision, or the property is not a date, or the current page is not connected. This can cause problems in templates if an attempt is made to compare the returned value with a number, so this template traps that and returns either the second unnamed parameter or 0 if that is not supplied.

Examples

edit
  • Darach Ó Séaghdha (Q52063097): {{Date precision|P569|qid=Q52063097}} → 7
  • Douglas Adams (Q42) {{Date precision|P569|qid=Q42}} → 11
  • No qid: {{Date precision|P569|qid={{{qid|}}} }} → 0
  • No qid, default set to 99: {{Date precision|P569|qid={{{qid|}}}|99}} → 0

Testing for precision can be done like this, and the default output can be changed by assigning the default a large number:

  • Darach Ó Séaghdha (Q52063097): {{#ifexpr:{{Date precision|P569|qid=Q52063097}} > 8 |This if it's year or smaller|This if it's more than a year}} → This if it's more than a year
  • Douglas Adams (Q42): {{#ifexpr:{{Date precision|P569|qid=Q42}} > 8 |This if it's year or smaller|This if it's more than a year}} → This if it's year or smaller
  • No qid: {{#ifexpr:{{Date precision|P569|qid={{{qid|}}} }} > 8 |This if it's year or smaller|This if it's more than a year}} → This if it's more than a year
  • No qid, default set to 99: {{#ifexpr:{{Date precision|P569|qid={{{qid|}}}|99}} > 8 |This if it's year or smaller|This if it's more than a year}} → This if it's more than a year