pub type KoreanTraditional = EastAsianTraditional<Korea>;Expand description
The Korean variant of the EastAsianTraditional calendar.
This type agrees with the official data published by the Korea Astronomy and Space Science Institute for the years 1900-2050.
For years since 1912, this uses adapted GB/T 33661-2017 rules,
using Korea time instead of Beijing Time.
As accurate computation is computationally expensive, years until
2100 are precomputed, and after that this type regresses to a simplified
calculation. If accuracy beyond 2100 is required, clients
can implement their own [Rules] type containing more precomputed data.
We note that the calendar is inherently uncertain for some future dates.
Before 1912 different rules
were used (those of Qing-dynasty China). This type produces correct data
for the years 1900-1912, and falls back to a simplified calculation
before 1900. If accuracy is required before 1900, clients can implement
their own [Rules] type using data such as from the excellent compilation
by Yuk Tung Liu.
The precise behavior of this calendar may change in the future if:
- New ground truth is established by published government sources
- We decide to tweak the simplified calculation
- We decide to expand or reduce the range where we are correctly handling past dates.
use icu::calendar::cal::{ChineseTraditional, KoreanTraditional};
use icu::calendar::Date;
let iso_a = Date::try_new_iso(2012, 4, 23).unwrap();
let korean_a = iso_a.to_calendar(KoreanTraditional::new());
let chinese_a = iso_a.to_calendar(ChineseTraditional::new());
assert_eq!(korean_a.month().standard_code.0, "M03L");
assert_eq!(chinese_a.month().standard_code.0, "M04");
let iso_b = Date::try_new_iso(2012, 5, 23).unwrap();
let korean_b = iso_b.to_calendar(KoreanTraditional::new());
let chinese_b = iso_b.to_calendar(ChineseTraditional::new());
assert_eq!(korean_b.month().standard_code.0, "M04");
assert_eq!(chinese_b.month().standard_code.0, "M04L");Aliased Type§
pub struct KoreanTraditional(pub Korea);Tuple Fields§
§0: Korea