ヒジュラ暦の1年は354日か355日かを計算
この計算ツールは、表形式イスラム暦の指定年が354日か355日かを判定します。正のヒジュラ暦年を入力すると、30年周期内の位置、閏年かどうか、正確な日数が返されます。固定された算術規則を用いるため、場所、月の観測、タイムゾーン、現在時刻、外部サービスには左右されません。表形式暦を明示的に採用するソフトウェア、歴史計算、テストデータ、教育用途に適しています。観測に基づく暦の判定には使用しないでください。
無料で実行
このツールにおけるヒジュラ暦年の意味
イスラム暦は太陰暦ですが、すべての方式が月の境界を同じように決めるわけではありません。この計算では、30年を1周期として繰り返す算術モデルである表形式イスラム暦を使用します。平年は354日で、所定の閏年は最終月に1日を加えるため355日です。この定義の違いは重要です。地域での新月観測、公的発表、天文学的な可視性モデルに基づく暦では、月替わり付近の民用日付が異なる場合があります。1446のような正の整数でヒジュラ暦年を入力してください。結果には、入力年、周期内の1から30までの位置、その位置が閏年かどうか、総日数が表示されます。仕様で表形式または算術イスラム暦が指定されている場合や、どの環境でも同じになるテスト値が必要な場合にご利用ください。特定地域の宗教行事の開始日を決めるものではありません。
354日または355日を求める方法
最初に、指定された年を表形式暦の30個の周期位置のいずれかに割り当てます。2、5、7、10、13、16、18、21、24、26、29番目が閏年で、それ以外は平年です。閏年の位置なら355日、平年の位置なら354日になります。これは月相の推定ではなく、厳密な整数演算です。実装はJavaScriptのDateオブジェクト、システム時計、ネットワーク通信、タイムゾーンデータベースを一切使用しません。そのため、UTCや端末の地域設定によって結果が変わることはありません。入力には、数値型の正の安全な整数が必要です。数字の文字列、小数、0、負の年、無限大、安全範囲外の整数は、暗黙変換せずエラーにします。判断根拠を確認できるよう、周期位置も結果に含まれます。この明確な規則は、単体テスト、移行作業、異なる言語実装間の互換性確認にも便利です。
目的に合う暦方式の選び方
慣用的な表形式年代法を明示的に採用するシステムで、この結果をご利用ください。たとえば、算術イスラム暦に設定された日付変換ライブラリ、定期予定のシミュレーション、授業での説明、データベース検証、観測の再現より決定的な再現性を優先する歴史計算などです。他システムの記録を連携する場合は、比較前にその暦方式をご確認ください。ヒジュラ暦、イスラム暦、民用暦、表形式暦、ウンム・アルクラー暦、観測暦という名称は、常に同義とは限りません。国の公式暦が天文学的基準を用い、固定周期と異なることもあります。このAPIが答えるのは、指定された表形式ヒジュラ暦年の日数だけです。日付変換、新月の可視性予測、祝日の特定、各地域における月初の宣言は行いません。APIでは1リクエストあたり$0.002です。結果は小さく決定的なので年ごとにキャッシュできますが、直接計算も定数時間で外部依存はありません。
活用例
暦データを検証
データセットを取り込んだり公開したりする前に、保存された日数が算術ヒジュラ暦と一致するか確認できます。
再現可能なテストを作成
同じ表形式イスラム暦の30年周期を実装するソフトウェア向けに、安定した期待値を生成できます。
閏年の仕組みを説明
現在の暦サービスを参照せずに、周期位置、閏年判定、年間日数を分かりやすく示せます。
よくある質問
すべてのイスラム暦で同じ結果になりますか?
いいえ。本計算は表形式イスラム暦専用です。観測暦や公式暦では異なる規則が採用される場合があります。
周期内のどの年が閏年ですか?
各30年周期の2、5、7、10、13、16、18、21、24、26、29番目が閏年です。
ヒジュラ暦の閏年が355日なのはなぜですか?
表形式暦では、所定の閏年の最終月に1日を加えるため、合計が354日から355日になります。
UTCやタイムゾーンは結果に影響しますか?
いいえ。固定の整数演算だけを用い、時計、Dateオブジェクト、タイムゾーン、外部サービスは参照しません。
APIリクエストの料金はいくらですか?
APIリクエスト1件の料金は$0.002です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/date/hijri-year-length \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"year":1446}'const res = await fetch("https://api.kit.forhosting.com/date/hijri-year-length", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"year": 1446
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/hijri-year-length",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"year": 1446
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/hijri-year-length", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"year":1446}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"year":1446}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/hijri-year-length", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"year": 1446
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.hijri_year_length",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |