日付からマヤ暦カレンダーラウンドを計算
このマヤ暦カレンダーラウンド計算機は、明示されたグレゴリオ暦の日付をTzolkinとHaabの組み合わせに変換します。Goodman-Martinez-Thompson相関定数584283を採用し、整数演算だけで処理するため、端末の時計、タイムゾーン、夏時間、ネットワーク上のデータには左右されません。結果にはTzolkinの日番号と日名、Haabの日と月、両者をまとめた表記、変換に用いたユリウス日番号が示され、計算内容を確認して再現できます。
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
マヤ暦のカレンダーラウンドが表すもの
カレンダーラウンドは、マヤ暦にある二つの反復周期を組み合わせたものです。Tzolkinは、13個の日番号と20個の日名を順番に組み合わせて作る260日の周期です。二つの列が同時に進むため、特定のTzolkin表記は260日後に再び現れます。Haabは365日の民用周期で、20日からなる18か月の後に、5日だけの短い期間Wayebが続きます。特定のTzolkinとHaabの組み合わせは、18,980日、すなわちHaabの52年後に繰り返されます。本計算機は両方の位置を示し、どちらか一方を長期にわたる完全な日付として扱うものではありません。この区別は重要です。カレンダーラウンドの表記は反復周期内の位置を示しますが、歴史全体の中でただ一つの日を特定するものではありません。そのため、応答には入力したISO日付とユリウス日番号も含まれます。これらの項目によって変換を検証でき、反復する表記を長期暦の一意な日付と取り違えずに済みます。Ajaw、Kankin、Wayebなどの綴りには、英語圏のマヤ研究で一般的な形式を採用しています。
決定的な変換を実現する計算方法
グレゴリオ暦の日付を正確なYYYY-MM-DD形式で入力してください。計算機は変換前に、月、日、グレゴリオ暦のうるう年規則を検証します。続いて、先発グレゴリオ暦の整数演算によって日付を整数のユリウス日番号へ変換します。JavaScriptのDateオブジェクトは生成しません。そのため、東京のブラウザー、UTCのサーバー、ニューヨークのパソコンでも同じ処理経路を通り、同一の値が得られます。マヤ暦上の位置は、一般にGMTと略されるGoodman-Martinez-Thompson相関定数584283で固定します。この相関の起点では、周期のずれが4 Ajawと8 Kumkuに対応し、剰余演算で指定日まで進めます。負の剰余も明示的に正規化するため、対応するグレゴリオ暦の範囲内であれば、相関起点より前の日付も一貫して定義されます。結果に採用相関を明記するのは、相関の選択が隠れた実装上の細部ではなく、解釈の前提だからです。別の相関を採用する文献では、双方の計算が内部的に整合していても結果が異なる場合があります。
結果を正確に読み、適切に利用する方法
calendar_roundフィールドは、最初がTzolkin、次がHaabです。たとえば4 Ajaw / 3 Kankinは、Tzolkinの日番号4と日名Ajawに、HaabのKankin月3日が組み合わさったことを意味します。個別の値を必要とするソフトウェアには、入れ子になったtzolkinとhaabの各オブジェクトが適しています。まとめた文字列は、画面表示、研究メモ、引用案などに便利です。別の変換ツールと比較するときはjulian_day_numberを使用してください。ユリウス日番号が一致しているのにマヤ暦の位置が異なる場合、通常は相関またはオフセットの規約が違います。計算では、各国が歴史的にグレゴリオ暦を採用する前の日付も含め、対応範囲全体に先発グレゴリオ暦を適用します。これにより演算は統一されますが、史料にユリウス暦で記された日付とは異なることがあります。本ツールは暦上の位置を計算するものであり、碑文の真正性を判定したり、長期暦を推定したり、考古学上の論争を解決したり、文化的解釈を断定したりするものではありません。研究で利用する際は、ISO入力、GMT 584283相関、返された全項目を一緒に記録すると、第三者が同じ計算を再現できます。
活用例
公表された変換を検証する
論文や展示解説の表記をGMT 584283に基づく透明な計算と比較し、確認用にユリウス日番号を保存できます。
日付付き記録に暦情報を加える
研究ノート、授業用年表、ISO日付付きデータセットに、構造化されたTzolkinとHaabの項目を追加できます。
再現可能な暦表示を作成する
端末のタイムゾーン、現在時刻、外部照会、地域依存の日付解析に頼らず、安定した組み合わせ表記を生成できます。
よくある質問
どのマヤ暦相関を使用していますか?
Goodman-Martinez-Thompson相関定数584283を使用し、すべての結果にその情報を表示します。
カレンダーラウンドの日付は一意ですか?
いいえ。同じTzolkinとHaabの組み合わせは18,980日ごとに反復するため、それだけでは歴史上の一日を一意に特定できません。
タイムゾーンによって答えは変わりますか?
いいえ。入力は明示的な日付であり、アルゴリズムは現地時刻やタイムゾーン変換を使わずに整数演算を行います。
入力できるグレゴリオ暦の日付はどれですか?
0001-01-01から9999-12-31までを、正確なYYYY-MM-DD形式で入力してください。月の日数とうるう年規則も検証します。
マヤ長期暦も計算できますか?
いいえ。TzolkinとHaabの組み合わせと検証用のユリウス日番号を返しますが、長期暦は推定しません。
APIリクエストの料金はいくらですか?
APIリクエスト1件の料金は$0.002です。1回の計算で一つの日付を一項目として処理します。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/date/maya-calendar-round \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2012-12-21"}'const res = await fetch("https://api.kit.forhosting.com/date/maya-calendar-round", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2012-12-21"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/maya-calendar-round",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2012-12-21"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/maya-calendar-round", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2012-12-21"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2012-12-21"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/maya-calendar-round", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"date": "2012-12-21"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.maya_calendar_round",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |