Module:Japanese calendar/doc explained

This module is used to calculate dates in the Japanese calendar. It defines an "era" class which is designed to be called from other Lua modules, and it also contains several functions to export Japanese calendar data directly to Wikipedia pages through #invoke.

Usage

Through #invoke

The function name specifies how the data should be outputted. The ''year'' and ''era'' parameters determine what era and year the module outputs. The ''next'' and ''previous'' parameters tell the module to return data for the next or previous era, rather than the one specified. If a combination of parameters is invalid the module will usually output nothing. However, if both the ''next'' and ''previous'' parameters are specified it will output an error.

Year and era

The ''year'' parameter is the year in the Gregorian calendar. The ''era'' parameter can either be the article name for that era, or the era's name in kanji. (Transcribed English era names can usually be used, but will not work if they are ambiguous.) Either ''year'' or ''era'' must be specified. If both are specified, the module defaults to using ''era'' to get the era data. This enables output of the last year of the previous era (for example, Shōwa 64 is the same year as Heisei 1).

Code Output
<nowiki>{{#invoke:Japanese calendar|link|year=1950}}</nowiki>
<nowiki>{{#invoke:Japanese calendar|link|era=Shōwa period}}</nowiki> || |-| <nowiki>{{#invoke:Japanese calendar|link|era=昭和}}</nowiki> || |-| <nowiki>{{#invoke:Japanese calendar|link|era=Shōwa}}</nowiki>
<nowiki>{{#invoke:Japanese calendar|link_year|year=1989}}</nowiki> || |-| <nowiki>{{#invoke:Japanese calendar|link_year|year=1989|era=Shōwa period}}</nowiki>
<nowiki>{{#invoke:Japanese calendar|link_year|year=1990}}</nowiki> || |-| <nowiki>{{#invoke:Japanese calendar|link_year|year=1990|era=Shōwa period}}</nowiki>

Functions

Code Description Example
baseyear The first year of the specified era. <nowiki>{{#invoke:Japanese calendar|baseyear|era=Heisei}}</nowiki> → |-| endyear || The last year of the specified era. || <nowiki>{{#invoke:Japanese calendar|endyear|era=Shōwa period}}</nowiki> → |-| year || The year for the specified era, without the era name. Defaults to the newer era, if more than one is applicable. || <nowiki>{{#invoke:Japanese calendar|year|year=1989}}</nowiki>
kanjiyear The same as ''year'', but in kanji. The first year of an era is changed to the kanji 元, and the others are changed to full-width numbers. <nowiki>{{#invoke:Japanese calendar|kanjiyear|year=1989}}</nowiki> → |-| article || The Wikipedia article for the era, unlinked. || <nowiki>{{#invoke:Japanese calendar|article|year=1950}}</nowiki> → |-| label || The name of the era. Same as ''article'' for undisambiguated titles. || <nowiki>{{#invoke:Japanese calendar|label|year=1950}}</nowiki> → |-| link || A link to the Wikipedia article of the specified era. || <nowiki>{{#invoke:Japanese calendar|link|year=1950}}</nowiki>
kanji The kanji for the specified era. <nowiki>{{#invoke:Japanese calendar|kanji|year=1950}}</nowiki> → |-| label_year || ''label'' followed by ''year'' || <nowiki>{{#invoke:Japanese calendar|label_year|year=1989}}</nowiki> → |-| link_year || ''link'' followed by ''year'' || <nowiki>{{#invoke:Japanese calendar|link_year|year=1989}}</nowiki> → |-| label_kanjiyear || ''label'' followed by ''kanjiyear'' || <nowiki>{{#invoke:Japanese calendar|label_kanjiyear|year=1989}}</nowiki>
link_kanjiyear ''link'' followed by ''kanjiyear'' <nowiki>{{#invoke:Japanese calendar|link_kanjiyear|year=1989}}</nowiki>

Next, previous and old

If the ''next'' parameter is specified, the module outputs the data for the subsequent era; if the ''previous'' parameter is specified it outputs the data for the previous one. If the ''old'' parameter is specified, the module outputs the data for the "old" era. This is the same as the current era unless the year is set to the first year of the specified era. If this is the case, then ''old'' outputs the data for the previous era. However, if the module could not find a valid previous era then the data for the current era is returned.

Code Output
<nowiki>{{#invoke:Japanese calendar|baseyear|era=Shōwa period}}</nowiki> || |-| <nowiki>{{#invoke:Japanese calendar|baseyear|era=Shōwa period|next=yes}}</nowiki>
<nowiki>{{#invoke:Japanese calendar|baseyear|era=Shōwa period|previous=yes}}</nowiki>
<nowiki>{{#invoke:Japanese calendar|baseyear|era=Shōwa period|old=yes}}</nowiki> || |-| <nowiki>{{#invoke:Japanese calendar|link|year=1880}}</nowiki>
<nowiki>{{#invoke:Japanese calendar|link|year=1880|next=yes}}</nowiki> || |-| <nowiki>{{#invoke:Japanese calendar|link|year=1880|previous=yes}}</nowiki> || |-| <nowiki>{{#invoke:Japanese calendar|link|year=1880|old=yes}}</nowiki>
<nowiki>{{#invoke:Japanese calendar|link_year|year=1926}}</nowiki> || |-| <nowiki>{{#invoke:Japanese calendar|link_year|year=1926|old=yes}}</nowiki> || |-| <nowiki>{{#invoke:Japanese calendar|link_year|year=1927}}</nowiki> || |-| <nowiki>{{#invoke:Japanese calendar|link_year|year=1927|old=yes}}</nowiki> || |-|}

From another Lua module

First of all, the era class must be loaded, like this:

  • local era = require('Module:Japanese calendar').era

Once the class is loaded, you can make a new era object using era:new:

  • local article = myEra.article

The properties are as follows:

  • gregorianYear: the year in the Gregorian calendar. Same as the input year.
  • startYear: the first year of the specified era.
  • endYear: the last year of the specified era.
  • eraYear: the year of the specified era, without the era name.
  • eraYearKanji: a string representing the era year in kanji. The first year of an era is changed to the kanji 元, and the others are changed to full-width numbers. Note: even though the output may often look like a number, it will always be a string value.
  • article: the Wikipedia article for the era, unlinked.
  • label: the name of the era. Same as article unless the article title is disambiguated.
  • kanji: the name of the era in kanji.

Methods

Era objects have three methods. Methods can be specified with the colon syntax:

  • local nextEra = myEra:getNextEra

The methods are as follows:

  • era:getNextEra - gets the era object for the next era. Returns nil if it doesn't exist.
  • era:getPreviousEra - gets the era object for the previous era. Returns nil if it doesn't exist.
  • era:getOldEra - gets the era object for the "old" era. This is the same as the current era object unless eraYear equals 1. If eraYear equals 1 then this returns the era object for the previous era. If the module could not find a valid previous era object then the current era object is returned.