ISO通算日付変換
2024年3月15日は年内の75日目で、ISOの通算日付では2024-075と書きます。どの日付も年内の通算日に変換でき、逆にも戻せて、うるう年も考慮されます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 日付
- 2024-03-15
- 年
- 2,024
- 月
- 3
- 日
- 15
- 年内通算日
- 75
ISO 8601では、同じ年を共有しながら日の表し方が異なる2つの暦日形式が定義されています。おなじみの「年-月-日」の暦形式と、年と1〜365(うるう年は366)の年内通算日からなる通算日形式です。連番の日付番号を格納するパイプライン、科学データセット、物流マニフェスト、コンプライアンスログでは、ホスト言語のDateオブジェクトやタイムゾーンの癖に依存せず、これらの形式間を損失なく橋渡しする必要がよくあります。
暦形式と通算日形式、および各変換方向が適用される場面
ISO暦日は、4桁の年、2桁の月、2桁の日をハイフンで区切って書きます。たとえば3月15日は2024-03-15です。ISO通算日は、同じ年、ハイフン、そして1月1日の001から平年では365、グレゴリオ暦のうるう年では366まで続く3桁の年内通算日を使います。
年のコンパクトな日インデックス、連番のファイル名、各日を整数軸として扱う分析が必要なときは、暦から通算日へ変換します。フィードが年内通算日しか提供せず、UI、請求書、バリデーターが月と日を期待する場合は、通算日から暦へ変換します。
うるう年、年の長さ、無効な年内通算日のエラー
グレゴリオ暦のルールでは、年が4で割り切れるときはうるう年ですが、100の倍数の年は400でも割り切れる必要があります。うるう年は366日で2月は29日、平年は365日で2月は28日です。そのため、2000年はうるう年、1900年はうるう年ではなく、2024年はうるう年ですが2023年はそうではありません。
たとえば2023年の366日目は年の長さを超えています。4月31日や平年の2月29日のような、その月に存在しない日の暦入力も同様に拒否されます。
活用例
科学・センサーデータの日インデックス
研究パイプラインはサンプルを年+年内通算日として保存します。レポート用に暦日へ変換し、コンパクトなアーカイブ用に通算日形式へ戻す際、ホストのDateのずれがありません。
物流とバッチファイルの命名
倉庫やバッチジョブはYYYY-DDDの連番でファイルに名前を付け、UIや請求書で人間が読めるYYYY-MM-DDラベルへの信頼できる橋渡しを必要とします。
通算日フィードの検証
パートナーから年内通算日を受け取る連携では、平年の366日目のような範囲外の値を、請求やスケジューリングシステムに入る前に拒否します。
よくある質問
通算日が年の長さを超えた場合はどうなりますか?
たとえば平年の366日目や366を超える日は拒否され、課金されません。
ISO通算日付変換は無料ですか?
ブラウザツールはお客様のデバイス上で無料で動作します。検証失敗は課金されません。
2024年3月15日の通算日付は何ですか?
2024-075です。3月15日は2024年の75日目だからです。最初に年が来て、その後に1月1日を001とする3桁の通し番号が続きます。
うるう年だと2月より後の通算日が変わるのはなぜですか?
うるう年には2月29日が加わるため、3月1日以降のすべての日付が平年より1つ大きい番号になります。そのため最後の日は365ではなく366になります。
通算日から普通の日付に戻せますか?
はい。2024-075のように年と通算日を入力すると、月と日、この場合は2024年3月15日が分かります。その年の日数を超える番号は受け付けません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/date/ordinal-date \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2024-03-15","calendar":"valor-ejemplo"}'const res = await fetch("https://api.kit.forhosting.com/date/ordinal-date", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2024-03-15",
"calendar": "valor-ejemplo"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/ordinal-date",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2024-03-15",
"calendar": "valor-ejemplo"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/ordinal-date", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2024-03-15","calendar":"valor-ejemplo"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2024-03-15","calendar":"valor-ejemplo"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/ordinal-date", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"date": "2024-03-15",
"calendar": "valor-ejemplo"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.ordinal_date",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
このISO通算日付変換は、決定的なグレゴリオ暦のうるう年計算でYYYY-MM-DDをYYYY-DDDに、またその逆方向に変換し、その年の実際の長さを超える年内通算日を拒否し、両方の表現と構造化フィールドを1つのJSONペイロードで返します。プリペイドAPIは、サーバーやSDKが同じ安定した契約を必要とする場合、成功した項目ごとに$0.002を課金します。
暦形式と通算日形式、および各変換方向が適用される場面
日付文字列、通算日文字列、年+月+日、または年+day_of_yearのいずれかを送信できます。calendar_date、ordinal_date、doy、dddなどのエイリアスは、ドキュメント化されている場合に受け付けられます。1つのリクエストで相反するモードを混在させないでください。エンジンは曖昧なペイロードをinvalid_inputで拒否するため、呼び出し側はどのフィールドが優先されるか推測するのではなく、ボディを修正できます。変換経路は壁時計、ロケール、ネットワークを読まないため、同一の入力は常に同一のJSONを返します。
うるう年、年の長さ、無効な年内通算日のエラー
通算日から暦への変換では、1未満またはその年の長さを超える年内通算日はinvalid_inputで失敗し、その年の実際の日数を示すメッセージが返されます。レスポンスはis_leap_yearとdays_in_yearをエコーするため、ダッシュボードは2回目の呼び出しなしで年の情報を表示できます。
APIの使い方、料金、ワークフロー、実用上の制限
無料のブラウザ内ISO通算日付変換は、宿題の確認、データ入力のデモ、暦ライブラリをインストールせずに済む迅速な検証にご利用ください。2月の長さだけが必要な場合は月内日数ツールと、正規化済みの暦日をローカライズ表示する次のステップにはフォーマッターと組み合わせてください。年の範囲は、安全性を分離するため、および一般的な民用ISOツール向けに公開されたパラメーター範囲に従います。入力は他のKIT parse項目と同じ保持ルールに従い、結果はネットワーク、乱数シード、壁時計のない完全に決定的なアルゴリズムのため、継続的インテグレーションのフィクスチャに固定しても安全です。明確な1つのモードでJSONボディを送信します。YYYY-MM-DD形式のdate、YYYY-DDD形式のordinal、構造化されたyear month day、または構造化されたyearとday_of_yearです。成功時のペイロードには、calendar_date、ordinal_date、数値コンポーネント、to_ordinalまたはto_calendarに等しいdirection、gregorianに等しいcalendar、そしてラベルで分岐するルーターやテスト向けにiso_ordinal_dateに等しいmethodが含まれます。物流プラットフォーム、科学パイプライン、コンプライアンスアーカイブ、SDKがKIT残高の下で成功項目ごとに$0.002の安定した契約を必要とする場合は、プリペイドAPIをご利用ください。エンジンがリクエストを拒否した後、検証失敗が残高を消費することはありません。
技術的な質問
YYYY-MM-DDをISO通算日に変換するには?
dateに2024-03-15のような暦文字列を設定したJSONを送信するか、year、month、dayを送信してください。レスポンスにはYYYY-DDD形式のordinal_dateと整数のday_of_yearが含まれます。
YYYY-DDDを暦日に戻すには?
ordinalを2024-075として送信するか、yearとday_of_yearを送信してください。レスポンスはmonthとdayが埋められたYYYY-MM-DD形式のcalendar_dateを返します。
JavaScriptのDateやタイムゾーンを使いますか?
いいえ。変換は純粋なグレゴリオ暦のうるう年計算と累積月長のみを使用するため、環境間で結果は同一で、goldenテストに安全です。