Jump to content

Module:Year in various calendars/doc

From Wikipedia, the free encyclopedia
2024 in various calendars
Gregorian calendar2024
MMXXIV
Ab urbe condita2777
Armenian calendar1473
ԹՎ ՌՆՀԳ
Assyrian calendar6774
Baháʼí calendar180–181
Balinese saka calendar1945–1946
Bengali calendar1431
Berber calendar2974
British Regnal yearCha. 3 – 3 Cha. 3
Buddhist calendar2568
Burmese calendar1386
Byzantine calendar7532–7533
Chinese calendar癸卯年 (Water Rabbit)
4721 or 4514
    — to —
甲辰年 (Wood Dragon)
4722 or 4515
Coptic calendar1740–1741
Discordian calendar3190
Ethiopian calendar2016–2017
Hebrew calendar5784–5785
Hindu calendars
 - Vikram Samvat2080–2081
 - Shaka Samvat1945–1946
 - Kali Yuga5124–5125
Holocene calendar12024
Igbo calendar1024–1025
Iranian calendar1402–1403
Islamic calendar1445–1446
Japanese calendarReiwa 6
(令和6年)
Javanese calendar1957–1958
Juche calendar113
Julian calendarGregorian minus 13 days
Korean calendar4357
Minguo calendarROC 113
民國113年
Nanakshahi calendar556
Thai solar calendar2567
Tibetan calendar阴水兔年
(female Water-Rabbit)
2150 or 1769 or 997
    — to —
阳木龙年
(male Wood-Dragon)
2151 or 1770 or 998
Unix time1704067200 – 1735689599
2024 in various calendars
Gregorian calendar2024
MMXXIV
Ab urbe condita2777
Armenian calendar1473
ԹՎ ՌՆՀԳ
Assyrian calendar6774
Baháʼí calendar180–181
Balinese saka calendar1945–1946
Bengali calendar1431
Berber calendar2974
British Regnal yearCha. 3 – 3 Cha. 3
Buddhist calendar2568
Burmese calendar1386
Byzantine calendar7532–7533
Chinese calendar癸卯年 (Water Rabbit)
4721 or 4514
    — to —
甲辰年 (Wood Dragon)
4722 or 4515
Coptic calendar1740–1741
Discordian calendar3190
Ethiopian calendar2016–2017
Hebrew calendar5784–5785
Hindu calendars
 - Vikram Samvat2080–2081
 - Shaka Samvat1945–1946
 - Kali Yuga5124–5125
Holocene calendar12024
Igbo calendar1024–1025
Iranian calendar1402–1403
Islamic calendar1445–1446
Japanese calendarReiwa 6
(令和6年)
Javanese calendar1957–1958
Juche calendar113
Julian calendarGregorian minus 13 days
Korean calendar4357
Minguo calendarROC 113
民國113年
Nanakshahi calendar556
Thai solar calendar2567
Tibetan calendar阴水兔年
(female Water-Rabbit)
2150 or 1769 or 997
    — to —
阳木龙年
(male Wood-Dragon)
2151 or 1770 or 998
Unix time1704067200 – 1735689599

This module produces the sidebar opposite displaying a given Gregorian year in various different calendars.

Syntax

[edit]

Simple

{{#invoke:Year in various calendars|main}}

All parameters

{{#invoke:Year in various calendars|main |year=(n) |footnotes=(footnotes) |gregcal=(article name)}}

Parameters

[edit]
year
Number specifying the year to be displayed. This can be negative and also can be in the format "n BC" to display BC dates or "AD n" as an alternative to a positive number. If not specified, the current year is used.
footnotes
Any footnotes to be placed at the bottom of the sidebar.
gregcal
Name of an article to be displayed for Gregorian and Julian years (e.g. "2000 BC"). Do not include square brackets.

Microformat

[edit]

The HTML mark-up produced by this template includes an hCalendar microformat that makes event/date details readily parsable by computer programs. This aids tasks such as the cataloguing of articles and maintenance of databases. For more information about the use of microformats on Wikipedia, please visit the Microformat WikiProject.

Classes used

The HTML classes of this microformat include:

  • attendee
  • description
  • dtend
  • dtstart
  • location
  • summary
  • url
  • vevent
Please do not rename or remove these classes
nor collapse nested elements which use them.


Adding new calendars

[edit]

The module is set up to allow for easy addition of new calendars. Just scroll down to the "Build the box" section of the module code, and add your calendar as follows:

To display one year:

    local myCalendar = calendar:new()
    myCalendar:setLink( 'My calendar article' ) -- The name of the calendar's Wikipedia article.
    myCalendar:setYear( year + 10 ) -- Lua code linking the Gregorian calendar year to your calendar's year.
    box:addCalendar( myCalendar )

To display a year range:

    local myCalendar = calendar:new()
    myCalendar:setLink( 'My calendar article' ) -- The name of the calendar's Wikipedia article.
    myCalendar:setYearRange( year + 10, year + 11 ) -- Lua code outputting the start year and the end year of the year range.
    box:addCalendar( myCalendar )

More complicated calendars can be passed as a string to calendar:setYear().

Technical details

[edit]

The module defines three classes which do the work of setting up the sidebar and displaying the data provided by the calendar functions. These are the calendarBox class, which defines the sidebar; the calendar class, which holds the data for one calendar; and the calendarGroup object, which defines a group of calendar objects with a heading.

To load these classes from another module, use the following:

local yearInOtherCalendars = require( 'Module:Year in various calendars' )
local calendarBox = yearInOtherCalendars.calendarBox
local calendarGroup = yearInOtherCalendars.calendarGroup
local calendar = yearInOtherCalendars.calendar

calendarBox class

[edit]

A calendarBox object is initiated with:

local myCalendarBox = calendarBox:new{ year = yyyy, footnotes = footnotes, navbar = page name }
  • year - sets the Gregorian year to base calendar calculations on. If not specified, the current year is used.
  • footnotes - sets text to be displayed in a footnotes section at the bottom of the sidebar.
  • navbar - sets the page name to be used by the navbar.

Calendar box objects have the following properties:

  • calendarBox.year - the Gregorian year number. This is negative for BC years; for example, for the year 100 BC the value of calendarBox.year is -99. (BC years are calculated by "1 - n" rather than "0 - n", as there is no year zero.)
  • calendarBox.yearText - the Gregorian year text. This is a string value of the format "n" for AD years and "n BC" for BC years.
  • calendarBox.caption - the text of the box caption (the bold text that appears directly above the box). The default caption is the value of calendarBox.yearText.
  • calendarBox.footnotes - the text of the box footnotes.
  • calendarBox.navbar - the page name used by the navbar.

Calendar box objects have the following methods:

  • calendarBox:setCaption( caption ) - sets the box caption (the bold text that appears directly above the box). The default caption is the value of calendarBox.yearText.
  • calendarBox:addCalendar( obj ) - adds a calendar object or a calendar group object to the calendar box.
  • calendarBox:addCalendarGroup( obj ) - an alias for myCalendarBox:addCalendar().
  • calendarBox:export() - converts the calendar box object to wikicode. This calls calendar:export() and calendarGroup:export() to export calendar objects and calendar group objects.

calendar class

[edit]

A calendar object is initiated with:

local myCalendar = calendar:new()

Calendar objects have the following properties:

  • calendar.link - the link name.
  • calendar.year - the year value. This is always a string value.

Calendar objects have the following methods:

  • calendar:setLink( link, display ) - sets the link name for the calendar object. link is the name of Wikipedia's article about the calendar, and display is an optional display name for the article link.
  • calendar:setRawLink( wikitext ) - sets the calendar link as raw wikitext.
  • calendar:getLink() - gets the link value.
  • calendar:setYear( year ) - sets the year value for the calendar. year can be a number or a string.
  • calendar:setYearRange( startYear, endYear ) - sets the year value for the calendar as a year range. Both startYear and endYear must be number values.
  • calendar:export() - exports the calendar to wikitext. If no link value was found, this returns nil. If a link was found but no year value was found, the calendar is output with a value of N/A for the year.

calendarGroup class

[edit]

A calendarGroup object is initiated with:

local myCalendarGroup = calendarGroup:new{ heading = heading }
  • heading - the wikitext heading for the calendar group (e.g. [[Hindu calendar]]s).

Calendar group objects have one property:

  • calendarGroup.heading - the calendar group heading text.

Calendar group objects have the following methods:

  • calendarGroup:addCalendar( obj ) - adds a calendar object to the calendar group.
  • calendarGroup:export() - converts a calendar group to wikitext. Calls calendar:export() to export individual calendar objects.

See also

[edit]

{{Year in various calendars}}