Calendar Description - Scheme jn
The Julian Nativity calendar is a variant of the Julian calendar obtained by shifting the year change back from the 1st January to the 25th December.
Use Case
This is the form the Anno Domimi or AD era took when it originated. It was developed in 525 CE by the monk Dionysius Exiguus for use when he was calculating tables of the Easter date. It was used by the Venerable Bede in his writing and then by the Church and more generally from the 8th century. It was gradually replaced by the Annunciation year change (25th March) and others from the 9th century. It was in common use up to the 14th century.
Definition
The Record consists of three julian required Fields named year,
month
and day
, a calculated field cyear
and the optional field wday
.
The field cyear
is the Civil Year while the year
is the Historic Year.
Record - Default order | ||||
---|---|---|---|---|
year | month | day | cyear | wday |
Record - Ranking order | ||||
---|---|---|---|---|
cyear | month | day | wday | year |
The field cyear
(Civil Year) equals year
(Historic Year)
apart from the days 25 Dec to 31 dec, when cyear
equals year + 1
jn | cyear | month | day |
---|---|---|---|
1 | 12 | 25 |
j | year | month | day |
---|---|---|---|
0 | 12 | 25 |
jdn | day |
---|---|
1721417 |
Formats
Formatting a date for schemes where the New Year date (Historical Year) and Year number increment date (Civil Year) is different can lead to confusion if it is not made clear which year is displayed. It is proposed that the dual dating system is used for this scheme.
Dual Dates
The Civil year is always shown in full. If this is the same as the Historical year then this is the only year shown. If the years differ, then the last digit (or as many as are different) is shown. This is separated from the Civil year with a '/' slash character.
Examples jn:dmy# | |||
---|---|---|---|
24 Dec 1134 | 25 Dec 1135/4 | 31 Dec 1135/4 | 1 Jan 1135 |
The term 'Dual Dates' is often used for different types of formatting, such as combining Julian and Gregorian dates. This library only uses the term for Civil/Historical years, as described above.
Formats Provided
Formats - Grammar j_sh | |||||
---|---|---|---|---|---|
Code | Rule | Pseudo | Example | Note | |
dmy | text | Input: day month cyear Output: dd Mon yyyy/h | 24 Dec 1234 25 Dec 1235/4 | D, S | |
dmy+ | text | Input: day month cyear Output: dd Month yyyy/h | 24 December 1234 25 December 1235/4 | S | |
wdmy | text | Input: wday day month cyear Output: Wday dd Mon yyyy/h | Sun 24 Dec 1234 Mon 25 Dec 1235/4 | ||
wdmy+ | text | Input: wday day month cyear Output: Weekday dd Month yyyy/h | Sunday 24 December 1234 Monday 25 December 1235/4 | ||
std | text | Input: day month cyear Output: ddth Month yyyy/h | 24th December 1234 25th December 1235/4 | S | |
full | text | Input: wday day month cyear Output: Weekday ddth Month yyyy/h | Sunday 24th December 1234 Monday 25th December 1235/4 | ||
mdy | text | Input: month day cyear Output: Mon dd, yyyy/h | Dec 24, 1234 Dec 25, 1235/4 | S | |
mdy+ | text | Input: month day cyear Output: Month dd, yyyy/h | December 24, 1234 December 25, 1235/4 | S | |
wmdy | text | Input: wday month day cyear Output: Wday, Mon dd, yyyy/h | Sun, Dec 24, 1234 Mon, Dec 25, 1235/4 | ||
wmdy+ | text | Input: wday month day cyear Output: Weekday, Month dd, yyyy/h | Sunday, December 24, 1234 Monday, December 25, 1235/4 | ||
cdef | text | Input: cyear month day Output: yyyy mm dd | 1234 12 24 1235 12 25 | H, S | |
def | text | Input: year month day cyear Output: h mm dd yyyy | 1234 12 24 1234 1234 12 25 1235 | H | |
u | unit | Input: 9hy 9m 9d 9cy Output: 9hy 9m 9d 9cy | 1234hy 12m 24d 1234cy 1234hy 12m 25d 1235cy | H | |
Notes: D = Default, H = Hidden, S = Range shortcut supported. Example based on jdn# 2172134 and 2172135 |
Script
Script - Module hics:julian_shift |
---|
grammar j_sh { name "Julian shifted epoch"; fields year month day; calculated cyear; optional wday; rank cyear month day; lexicons m w; alias pseudo { w wday; dd day; mm month; yyyy cyear; h year; } alias unit { d day; m month; hy year; cy cyear; } use epoch; format dmy "{day} |{month:m:a} |{cyear/year}"; format "dmy+" "{day} |{month:m} |{cyear/year}"; format wdmy "{wday:w:a} |{day} |{month:m:a} |{cyear/year}"; format "wdmy+" "{wday:w} |{day} |{month:m} |{cyear/year}"; format std "{day::os} |{month:m} |{cyear/year}"; format full "{wday:w} |{day::os} |{month:m} |{cyear/year}"; format mdy "{month:m:a} |{day}, |{cyear/year}"; format "mdy+" "{month:m} |{day}, |{cyear/year}"; format wmdy "{wday:w:a}, |{month:m:a} |{day}, |{cyear/year}"; format "wmdy+" "{wday:w}, |{month:m} |{day}, |{cyear/year}"; format cdef { inout "{cyear}| {month}| {day}"; visible no; } preferred dmy; } scheme jn { name "Julian Nativity"; base julian; epoch 1721417; // j:dmy# 25 Dec 0 grammar j_sh; } |
The script uses the lexicon "m" definition from
j Julian for the month
field.
It also uses the lexicon "w" definition from the
jwn Julian Week Number scheme
for the optional field wday.