はじめに
Diverse-Conlangにて暦の話題が出たこともあり、最近決まったオ゛ェジュルニョェーッ世界の暦を紹介していきます。非常に長いですが最後までお読みいただけるとありがたいです。
定義
本稿において、また一般に我々が生きるこの世界を、架空世界や並行世界と対比して「現在世界」と呼ぶこととします。
また、n
進数の数dd
を表すのにxn{dd}
という表記をします(ex: 10進数10はx10{10}
, 2進数10はx2{10}
)。また、2進、8進、10進、16進には特別な記号(英字)が割当てられており、それぞれb
(binaryのb)、c
(octのc)、d
(decimalのd)、h
(hexのh)です。これを用いて、先ほどの例は「10進数10はxd{10}
, 2進数10はxb{10}
」と表すことができます。
特に注記ない場合は10進数です。
オ゛ェジュルニョェーッ世界とは
オ゛ェジュルニョェーッ語の話される地域としてオ゛ェジュルニョェーッ国(オ゛ェジュルニョェーッ合同首長国, オ゛ェジュルニョェーッ語: Gucū'diм Ƣeznē'ic)があり、それを含む並行世界がオ゛ェジュルニョェーッ世界です。
オ゛ェジュルニョェーッ国は、現在世界におけるキルギス及びタジキスタンの全土に相当するオ゛ェジュルニョェーッ地域を領土とする選挙君主制の国家連合国家です(詳しい紹介はまた別の機会にでも)。
オ゛ェジュルニョェーッ語及びオ゛ェジュルニョェーッ世界では17進数が用いられており(オ゛ェジュルニョェーッ語の数詞や数体系は別の機会にでも紹介します)、以降の暦体系でも17進数が出てきます。
また、オ゛ェジュルニョェーッ世界では支族の数であったり、(文法は範疇の)数など3が出現することが多いです。この3という数字は通貨や暦にも同様によく出てきます。
地理的・天文学的条件
前述したとおり、オ゛ェジュルニョェーッ世界は現在世界上の並行世界であるので、我々が住んでいるのと同じ地球がオエル世界の星であり、また物理法則なども現在世界と等しいです。
したがって、自転周期、公転周期も現在世界と等しく、よってそこから計算されるべき(天文学的な)1日の長さ、1年の長さも現在世界と等しくなります。
暦の体系
オリジナルの内容はオ゛ェジュルニョェーッ語ScrapBox内の記事に記載されているので、興味のある方はそちらもご覧ください。
日・時・分・秒
先述した通り、1日の長さは正確に現在世界と等しいです。ゆえに、これが日時換算の基点となります。
オ゛ェジュルニョェーッ世界では日の下位に時・分・秒があり(まあ現在世界と同じです)、次のように換算します。17進法でキリがよく(下位桁が0、あるいは3)、体感ともあまりずれない値が設定されています。なお1分の秒数がやや長いのは、(制作史として)リパライン語の世界の影響が見られます。
xd{1}日 = xd{34}時間( = x17{20}時間)
xd{1}時間 = xd{54}分( = x17{33}分)
xd{1}分 = xd{105}秒( = x17{63}秒)
加えて、秒の下にミリ秒、マイクロ秒などがありますが、それぞれオ゛ェジュルニョェーッ世界では , となります。
年・季・月・旬・週
オ゛ェジュルニョェーッ世界では日よりも大きい単位は年・季・月・旬・週があり、現在世界よりもやや多いです。日よりも大きい単位では、すべて3をベースとして成り立っています。
3つの曜日すなわち3日で1週間、3週間で1旬、4旬で1月となり、月のうちの4旬目は余りの旬と呼ばれます。また1季は3月からなり、3季+余りの月旬で1年になります。
置閏法
3旬からなる1月と1旬を余りの月旬とする平年と、4旬からなる1月と1旬を余りの月旬とする閏年があります。
年を周期に置閏が行われ、前者
年は閏年、閏年、平年の繰り返しであり、後者
年は全て平年となります。
紀元(エポック)と年の数え方
年は合同記念紀元(最初に3支族合同が成立した日)を基準とする通年と、
年ごと(その他合同・改暦等の特別の場合に行うことができる)に新たな年号が与えられる銘年が存在します。
銘年は専ら雅称として用いるのみであり、実務上は通年のみ若しくは通年を基本に括弧書きで銘年を併記する形が取られます。
合同記念紀元はまだ設定が行われていないので、年の換算はまだできないです。
暦の計算
下記GitHub Gistにて記載したプログラムで試算したところ、次のような結果が得られました。
下記GistのコードはDartpadで実行できます(下記Gistと同じ内容が入力された状態でページが開かれます)
各暦単位の日数との換算
プログラムでは、基準となる暦単位(先ほど述べた年・季・月・旬・週)を計算しやすいよう日数に換算しています(扱いやすいようFfezCalendarSys
クラスにまとめています)。これが次の表です。
記号 | 単位 | 日数 | 備考 |
---|---|---|---|
day | 日 | 1 | |
week | 週 | 3 | |
decade | 旬 | 9 | |
month3 | 月 | 27 | 3旬からなる月 |
month4 | 月 | 36 | 4旬からなる月 |
season3 | 季 | 81 | 3旬からなる季 |
season4 | 季 | 108 | 4旬からなる季 |
year3 | 年 | 243 | 3旬からなる年:まったく置閏しない場合 |
year4 | 年 | 324 | 4旬からなる年:まったく置閏しない場合 |
year4d1 | 年 | 333 | 4旬からなる年:1旬追加 |
year4d2 | 年 | 342 | 4旬からなる年:2旬追加 |
year4m1q3 | 年 | 351 | 4旬からなる年:3旬の月を1月追加 |
year4m1q4 | 年 | 360 | 4旬からなる年:4旬の月を1月追加 |
year4d1m1q3 | 年 | 360 | 4旬からなる年:3旬の月を1月と、加えて1旬追加 |
year4d1m1q4 | 年 | 369 | 4旬からなる年:4旬の月を1月と、加えて1旬追加 |
year4d2m1q3 | 年 | 369 | 4旬からなる年:3旬の月を1月と、加えて2旬追加 |
year4d2m1q4 | 年 | 378 | 4旬からなる年:4旬の月を1月と、加えて2旬追加 |
year4m1q4
,year4d1m1q3
の360日、year4d1m1q4
,year4d2m1q3
の369日が平均回帰年365.24218944日に近いですね。置閏のサイクルは、暦における1年の平均日数を平均回帰年365.24218944日に近づくので、この2つを平年と閏年として採用しましょう(各々同じ日数に対して2つ記号があるのでそれぞれyear4d1m1q3
とyear4d1m1q4
で代表させましょう)。
置閏サイクルの計算
プログラムでは、各年の日数と積算日数、そしてそれらから求められるいくつかの値を連続的に計算するFfezCalendar
クラスを構成しています。
FfezCalendar
クラスではコンストラクタで計算開始年、平年の日数、閏年の日数を与えてインスタンスを作成し、next
メソッド或いはnYears
メソッドで置閏スケジュールを与えて計算を走らせます。
今回は1482年を開始年とし(先ほども書きましたが合同記念紀元が未設定なので仮です)、5260年までの3778年間分を走行します。十数秒で3778年間を一気に飛んでしまうのですから超高速ですね。光速よりも速い。
で、結果ですが、幾つもパターンを試したところ、先述した通りの置閏サイクルで走らせた場合に次の表のような結果になりました。
計算総年数の積算の平均 | 各置閏周期の積算の平均 | |
---|---|---|
最大値許容年 | 5260年(経過3778年) | 5260年(経過3778年) |
最小値許容年 | 5260年(経過3778年) | 1482年(経過0年) |
絶対値許容年 | 2655年(経過1173年) | 5260年(経過3778年) |
振れ幅許容値 | -67.9917043200694日 | 6.539114880000852日 |
なお最大値許容年は正方向に許容値を超える最初の年、最小値許容年は負方向に許容値を超える最初の年、絶対値許容年は絶対値が許容値を超える最初の年、振れ幅許容値は最大値許容年における積算平均日数と最小値許容年における積算平均日数との差です(内部で許容値25日と設定しました)。
経過0年の所などややバグってそうに見える箇所もありますが、大方十分正確な精度と言えそうです。
したがって、規則的でありつつ結構精度が良い暦であると結論づけることができ、置閏サイクルはこれで確定してよさそうです。
資料
設定のドキュメントや試算に使った資料などを置いておきます。
設定記事
試算プログラム
- Dartpad: https://dartpad.dev/?null_safety=true&id=e24f9f8d8688f9bae139a49ac2849d48
- GitHub Gist: https://gist.github.com/halka9000stg/e24f9f8d8688f9bae139a49ac2849d48
- ≪main.dart≫
Top comments (0)