Skip to content

Korean Lunisolar Calendar conversion table incorrectly mixes Julian and Gregorian date information #10130

@elyoh

Description

@elyoh

The Korean Lunisolar Calendar uses a table of data for conversion between Korean lunisolar dates and Gregorian dates. The table contains a mixture of Julian and Gregorian date information, but should only contain Gregorian date information.

On such entry is:
1391 */{ 0 , 2 , 5 , 25904 },/* 29 30 30 29 29 30 29 30 29 29 30 30 0 354

This is interpreted by the code as:
Y1391-M1-D1 of Korean lunisolar calendar began on 5 Feb 1391 (Gregorian).

However, Y1391-M1-D1 (lunisolar) began on 13 Feb 1391 (Gregorian) or 05 Feb 1391 (Julian). The entry incorrectly uses the day and month from the Julian date and it should use day and month from the Gregorian one.

Further analysis shows that all lines in the table prior to 1582 incorrectly give the first day of the lunisolar year in the Julian calendar rather than the Gregorian calendar. Since the conversion routine takes a Gregorian day, month, and year for conversion into the lunisolar day month and year, any conversions to dates with a solar year before 1583 are incorrect.

The discrepancy likely arises due to the fact that many reference tables switch from using the Julian calendar to the Gregorian calendar in year 1582 (04 Oct 1582 (Julian) was followed by 15 Oct 1582 (Gregorian)). One such table is provided by the Korea Astronomy and Space Science In-
stitute (KASI)
. Here dates prior to Y1582-M09-D18 (lunisolar) are indexed using the Julian calendar and those after Y1582-M09-D19 (lunisolar) are indexed using the Gregorian calendar.

There are also anomalous entries in the .NET table when compared to KASI.
The first day of the year is incorrect for 1587, 1648, and 1754. Most notably, the entry for 1587 gives 09 Mar 1587 (Gregorian) as the start date of lunisolar year (this is the first day Y1587-M02-D01 (lunisolar) instead of Y1587-M01-D01 (lunisolar)). The individual month lengths differ from KASI in 1586, 1587, 1659, 1692, 1753, and 1754.

The table used in the .NET class has been corrected here:
correct Korean lunisolar .NET table.txt

Reference data:
Korea Astronomy and Space Science In-
stitute (KASI)
.
VERIFICATION OF THE CALENDAR DAYS OF THE JOSEON DYNASTY
KoreanLunisolarCalendar.cs

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-System.GlobalizationquestionAnswer questions and provide assistance, not an issue with source code or documentation.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions