エチオピア暦から西暦への日付変換ツール
この変換ツールは、エチオピア暦の年・月・日を明示していただくことで、対応する先発グレゴリオ暦の日付を算出します。短い第13月パグメンとその閏日の規則を含め、エチオピア暦の全13か月に対応しています。固定整数による暦算術を用いるため、結果は端末の地域設定、時計、タイムゾーン、夏時間に左右されません。応答にはISO形式の日付文字列に加え、西暦の年・月・日が個別の数値フィールドとして含まれ、表示や自動処理に便利です。
無料で実行
エチオピア暦の日付を正確に入力してください
エチオピア暦の年、月、日をそれぞれ整数でご指定ください。第1月から第12月までは常に30日あり、第13月は年末の短い期間であるパグメンです。パグメンは通常5日ですが、エチオピア暦の閏年には6日目があります。省略された年を推測したり、不完全な日付を解釈したりすると結果が曖昧になるため、すべての項目が必須です。小数、数字の文字列、0、負数、1から13の範囲外の月、選択した月に存在しない日も受け付けません。この厳密な入力規則により、フォームやデータ処理では、不正な値が知らないうちに翌月へ繰り越されず、明確なエラーとして検出されます。たとえば2016年1月1日はエチオピアの新年を表し、正確に対応する西暦へ変換されます。簡潔な結果が必要な場合は返された日付文字列を、日付要素を別々に保存するアプリケーションでは個別の数値フィールドをご利用ください。
算術による変換の仕組み
最初に、確立されたエチオピア暦の紀元を基準として、入力日を固定の通算日数へ対応付けます。完了した各年は365日、4年の閏周期は追加日、完了した各月は30日を加えます。次に通算日数を先発グレゴリオ暦の規則で復号します。通常は4で割り切れる年が閏年ですが、世紀年は平年となり、400で割り切れる年は再び閏年となります。連続した日数を介することで、エチオピア暦を通常受け付けず環境差も生じ得るプラットフォームの日付解析に依存しません。公開範囲内の過去と未来の日付についても、同じ入力から必ず同じ結果が得られます。現在日付は参照せず、時刻も生成しません。ここでUTCとは、タイムゾーンに左右されない安定した暦日の解釈を指し、入力をUTCオフセットで移動する意味ではありません。出力は、制限された整数演算だけで求めた対応する西暦の日そのものです。
アプリケーションで安全に利用してください
応答には年-月-日形式の日付フィールドと、年、月、日の数値プロパティが返されます。データベースへの取り込み、資料索引、住民記録の処理、歴史研究ノート、西暦を使うシステムとの連携に適した構造です。出力は瞬間ではなく暦日としてお取り扱いください。後続処理でタイムスタンプが必要な場合は、時刻、場所、タイムゾーン方針を別途選ぶ必要があり、本ツールがそれらを推測することはありません。算術的なエチオピア暦を使用し、手書き文字、各言語の月名、不確かな日付、1年より前の時代、別の学術的年代体系は解釈しません。単発の変換はブラウザーで、検証と変換を反復可能な処理へ組み込む場合は$0.002のAPIをご利用ください。同じ純粋な計算処理を使用するため、有効な入力は、ネットワークや可変状態に依存せず、対応するすべての実行経路で同一のJSONを生成します。
活用例
住民記録を正規化する
西暦の日付を必要とするシステムへ記録を取り込む前に、エチオピア暦の各項目を変換します。
国際的な予定を準備する
既知のイベントのエチオピア暦日を、関係者や計画ツールが使う西暦の日付へ変換します。
歴史資料を索引化する
明示的なエチオピア暦日で整理された文書へ、決定論的な西暦の対応日を追加します。
よくある質問
1回の変換料金はいくらですか?
APIによる1回の変換は$0.002です。ブラウザーではAPI料金なしで実行していただけます。
エチオピア暦には13か月ありますか?
はい。第1月から第12月は各30日で、第13月のパグメンは通常5日、閏年には6日あります。
エチオピア暦の閏年はどのように扱われますか?
算術的な4年周期を適用します。4で割った余りが3となるエチオピア暦年には、パグメンの6日目があります。
タイムゾーンは結果に影響しますか?
いいえ。入力と出力は、時刻、オフセット、現地時計、夏時間規則を使わずに計算した暦日です。
日付を文章として送信できますか?
いいえ。言語依存の解析をせず明確に検証できるよう、年、月、日を個別の整数でご指定ください。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/date/ethiopian-to-gregorian \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"year":2016,"month":1,"day":1}'const res = await fetch("https://api.kit.forhosting.com/date/ethiopian-to-gregorian", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"year": 2016,
"month": 1,
"day": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/ethiopian-to-gregorian",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"year": 2016,
"month": 1,
"day": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/ethiopian-to-gregorian", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"year":2016,"month":1,"day":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"year":2016,"month":1,"day":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/ethiopian-to-gregorian", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"year": 2016,
"month": 1,
"day": 1
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.ethiopian_to_gregorian",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |