Glich - v0.3.0 Manual
je - Julian Easter
Home Development v0.3.0 Manual Hics Library je

Calendar Description - Scheme je

The Julian Easter scheme is a variant of the Julian calendar obtained by shifting the year change forward from the 1st January to Easter Sunday for the year in question. Because Easter varies from 22nd March to 25th April, the length of the year varies. Some years a few days will occur twice in an Easter year and sometimes a few days will be invalid for that year.

Use Case

Used in some French provinces around the 13th century.

A variant of this calendar was used in the English Regnal calendar as King John used the year from Ascension Day (40 days following Easter Sunday).

Definition

Record - Default order
eyearrepeatmonthdayrepeatedhyearwsday
Record - Ranking order
eyearmonthdayrepeatrepeatedhyearwsday

The Julian Easter calendar is based on Julian calendar and the same days of the year the Julian calendar except the year change occurs on Easter Sunday. The calendar is given the nominal epoch of 27th March 1, the calculated day of Easter in the Julian year 1.

The Epoch is set at

jeyearmonthdayhist
13271
=
jyearmonthday
1327
=
jdnday
1721509
.

Formats

Range shortcut formats (where only part of the date is written - such as the year) has not been implemented for this scheme.

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. Only the dual dating system is used for the visible formats of 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.

When inputting a date, the historical year is optional.

Repeated Days

The nature of this scheme is that every few years the month and day values overlap the year number increase. The default field repeat is used to show when this occurs, it has the value of 0 normally, but when the month and day overlap, it has the value 1.

As the repeat overlap only occurs rarely it is confusing to keep displaying the first use of the eyear, month, day and only indicate when it is repeated. A calculated field repeated is used that has the value null when repeat = 0 and 1 when repeat = 1. Formats that use the repeated field, only display it when the day is repeated for the second time.

Repeated Date - Lexicons rpt and rptd
NumberNameAbbrev.
0FirstF
1RepeatedRpt

The lexicon rpt is associated with the field repeat.

The lexicon rptd is associated with the field repeated.

Available Formats

Formats - Grammar je
CodeRulePseudoExampleNote
dmytextInput: day month eyear repeated
Output: dd Month yyyy/h Repeated
2 April 2022/3
3 April 2023
3 April 2023/4 Repeated
D
dmy_atextInput: day month eyear repeated
Output: dd Mon yyyy/h Rpt
2 Apr 2022/3
3 Apr 2023
3 Apr 2023/4 Rpt
wdmytextInput: wsday day month eyear repeated
Output: Weekday dd Month yyyy/h Repeated
Saturday 2 April 2022/3
Sunday 3 April 2023
Tuesday 3 April 2023/4 Repeated
wdmy_atextInput: wsday day month eyear repeated
Output: Wday dd Mon yyyy/h Rpt
Sat 2 Apr 2022/3
Sun 3 Apr 2023
Tue 3 Apr 2023/4 Rpt
mdytextInput: month day eyear repeated
Output: Month dd, yyyy/h Repeated
April 2, 2022/3
April 3, 2023
April 3, 2023/4 Repeated
mdy_atextInput: month day eyear repeated
Output: Mon dd, yyyy/h Rpt
Apr 2, 2022/3
Apr 3, 2023
Apr 3, 2023/4 Rpt
alltextInput: wsday day month eyear repeat
Output: Weekday dd Month yyyy/h Repeated
Saturday 2 April 2022/3 First
Sunday 3 April 2023 First
Tuesday 3 April 2023/4 Repeated
all_atextInput: wsday day month eyear repeat
Output: Wday dd Mon yyyy/h Rpt
Sat 2 Apr 2022/3 F
Sun 3 Apr 2023 F
Tue 3 Apr 2023/4 Rpt
deftextInput: eyear repeat month day repeated
Output: yyyy rpt mm dd repeated
2022 0 4 2
2023 0 4 3
2023 1 4 3 1
H
uunitInput: 9y 9r 9m 9d 9rptd
Output: 9y 9r 9m 9d 9rptd
2022y 0r 4m 2d
2023y 0r 4m 3d
2023y 1r 4m 3d 1rptd
H
Notes: D = Default, H = Hidden. Example based on jdn# 2460050, 2460051 and 2460417

Script

Script - Module hics:easter
lexicon rpt { name "Repeated Date"; fieldname repeat; lang en; pseudo Repeated, Rpt; tokens { 0, "First", "F"; 1, "Repeated", "Rpt"; } } lexicon rptd { inherit rpt; fieldname repeated; } grammar je { fields eyear repeat month day; calculated repeated; optional hyear wsday; rank eyear month day; lexicons m ws rpt rptd; alias pseudo { w wsday; rpt repeat; dd day; mm month; yyyy eyear; h hyear; } alias unit { d day; r repeat; m month; y eyear; rptd repeated; } function def_to_calc { repeated = @if( repeat=1, 1, null ); result = this; } function calc_to_def { repeat = @if( repeated=1, 1, 0 ); result = this; } use { calculate def_to_calc; from:text calc_to_def; } format dmy "{day} |{month:m} |{eyear/hyear}| {repeated:rptd}"; format dmy_a "{day} |{month:m:a} |{eyear/hyear}| {repeated:rptd:a}"; format wdmy "{wsday:ws} |{day} |{month:m} |{eyear/hyear}| {repeated:rptd}"; format wdmy_a "{wsday:ws:a} |{day} |{month:m:a} |{eyear/hyear}| {repeated:rptd:a}"; format mdy "{month:m} |{day}, |{eyear/hyear}| {repeated:rptd}"; format mdy_a "{month:m:a} |{day}, |{eyear/hyear}| {repeated:rptd:a}"; format all "{wsday:ws} |{day} |{month:m} |{eyear/hyear}| {repeat:rpt}"; format all_a "{wsday:ws:a} |{day} |{month:m:a} |{eyear/hyear}| {repeat:rpt:a}"; preferred dmy; } scheme je { name "Julian Easter"; base easter; grammar je; }

The script uses the lexicon "m" definition from j Julian for the month field and "w" definition from the jwsn Julian Week (Sunday) Number scheme for the optional field wsday.

Home Development v0.3.0 Manual Hics Library je

Managed by WebPageLayout Validated by HTML Validator (based on Tidy)

5th August 2024