睡眠サイクルから最適な起床時間を計算
この睡眠サイクル起床時刻計算ツールは、予定している就寝時刻から実用的なアラーム候補を一覧で示します。床に就く時刻、平均的なサイクルの長さ、普段眠りに入るまでにかかる分数をご入力ください。まず入眠までの時間を加え、その後は完全なサイクル単位で進めるため、各候補がサイクルの区切りに揃います。睡眠計画を補助するものであり、睡眠の質を保証したり、個別の医療相談に代わったりするものではありません。
無料で実行
実際に床に就く予定時刻から始めます
bedtime には、実際に床に就く予定の時刻を 22:30 や 00:15 のような 24 時間制の HH:MM 形式でご入力ください。本ツールは、横になった直後に眠れるとは想定しません。最初に fall_asleep_minutes を加算します。初期値は十五分ですが、普段の習慣に合わせて変更できます。たとえば 22:30 に床に就き、入眠まで十五分かかる場合、推定睡眠開始時刻は 22:45 です。すべての起床候補は、横になった瞬間ではなく、この時点から算出されます。入眠時間を考慮しないと、各アラームが目的のサイクル境界より早くなるため、この違いは重要です。応答には正規化済みの就寝時刻と sleep_starts_at の両方が含まれます。そのため、結果を保存する場合、アプリに表示する場合、複数の夜の習慣を比較する場合にも前提を確認できます。日付をまたぐ時刻は自動的に翌日の時刻へ循環します。入力は時計時刻のみなので、結果には日付ではなく時刻を表示します。早朝の候補は、入力した bedtime より後の時刻としてお読みください。
現実的な平均サイクル時間を選びます
睡眠サイクルはおよそ九十分と説明されることが多いため、cycle_minutes の初期値は 90 です。ただし、本ツールでは別の平均値もご指定いただけます。ゼロまたは負のサイクルでは将来の起床境界を定められないため、有限の正の数をご入力ください。各候補について、アルゴリズムは cycle_minutes に整数のサイクル数を掛け、その時間を推定睡眠開始時刻に加え、HH:MM 形式に整えます。小数のサイクル時間も指定できますが、表示時刻は最も近い一分単位に丸められます。応答では各候補の sleep_minutes も保持するため、自動処理するクライアントは時刻の根拠となる長さを確認できます。この長さは毎晩正確に一定となる生体測定値ではなく、計画用の目安としてお使いください。ストレス、体調、年齢、環境、通常の変動によって睡眠構造は変わります。ウェアラブル機器や睡眠日誌の記録がある場合、特異な一晩の値より、代表的な複数夜の平均が一般に役立ちます。本ツールは選択した平均値で計算するだけで、睡眠段階の診断や実際の境界到達の確認は行いません。
候補を確認し、十分な総睡眠時間を確保します
wake_up_times 配列は、完全な一サイクルから max_cycles まで順に並びます。max_cycles の初期値は六で、一から十二まで設定できます。各項目には、サイクル数、入眠後の総睡眠分数、対応する wake_time が含まれます。この一覧は計算を比較するのに便利ですが、早い候補が自動的に健康的な推奨となるわけではありません。一サイクルの結果は短い仮眠の境界を把握する用途には使えますが、一晩の計画では通常、ご自身の状況に合った十分な総睡眠時間が必要です。まず総時間を確認し、そのうえで予定にも合うサイクル境界の時刻をお選びください。計算は決定的であり、現在の日付、現地のタイムゾーン、システム時計を参照せず、ネットワークサービスも使用しません。同じ入力からは、ブラウザーでも API でも常に同じ出力が得られます。日付をまたぐ処理は時計の算術で行います。睡眠の問題、強い日中の眠気、呼吸の中断など気になる症状が続く場合は、この予定表を診断の代わりにせず、資格を持つ医療専門家へ相談する際の記録としてのみご利用ください。
活用例
就寝前にアラームを計画する
普段の入眠時間を加えたうえで、完全なサイクルに揃う複数のアラーム時刻を比較できます。
睡眠計画機能を作成する
ウェルネスアプリや個人用画面に、サイクル数、長さ、時刻を含む決定的な予定を組み込めます。
個人の平均サイクルを試す
一般的な九十分という目安を観察結果の平均に置き換え、算出される境界を比較できます。
よくある質問
計算ツールの料金はいくらですか?
このページのブラウザー計算は無料です。API リクエストは $0.002 からご利用いただけます。
なぜサイクルの前に入眠時間を加えるのですか?
睡眠サイクルは眠りに入ってから始まるため、完全なサイクルを数える前に就寝時刻へ入眠時間を加えます。
一サイクルは必ず 90 分ですか?
いいえ。初期値は九十分ですが、cycle_minutes には有限の正の数を指定できます。
起床時刻が日付をまたぐ場合はどうなりますか?
有効な 24 時間制の時刻へ循環します。早朝の結果は、入力した就寝時刻より後として解釈してください。
サイクルの境界なら必ず快適に起きられますか?
いいえ。結果は数学的な計画の目安です。総睡眠時間や個人の健康状態も引き続き重要です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/final3/sleep-cycle-wake-time-calc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bedtime":"22:30"}'const res = await fetch("https://api.kit.forhosting.com/final3/sleep-cycle-wake-time-calc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bedtime": "22:30"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/final3/sleep-cycle-wake-time-calc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bedtime": "22:30"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/final3/sleep-cycle-wake-time-calc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bedtime":"22:30"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bedtime":"22:30"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/final3/sleep-cycle-wake-time-calc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"bedtime": "22:30"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "final3.sleep_cycle_wake_time_calc",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |