コンテンツへスキップ
🛠️ToolsShed

Sit/Stand Reminder Calculator

最適な着座と立位の作業間隔を計算し、人間工学的な健康のための終日スケジュールを生成します。

クイックプリセット

: 75% 座る / 25% 立つ

🪑 座る🧍 立つ

このツールについて

座り立ちスケジュールは、長時間の座位作業の健康リスクに対抗する実証済みの人間工学戦略です。長時間の座位は心臓血管疾患、2型糖尿病、肥満、筋骨格系の痛みと関連していますが、これらはすべて、仕事中に定期的に座ると立つを交互に行うことで軽減できます。最新の研究によると、座位時間を立位間隔で中断するだけでも、血液循環が大幅に改善され、筋肉疲労が軽減され、日々のカロリー消費が増加し、入手可能な職場ウェルネス対策の中で最も単純でありながら最も効果的なものの一つとなっています。

このツールは、あなたの就業時間と身体的好みに合わせてカスタマイズされた座り立ちスケジュールを設計するのに役立ちます。希望する座位時間と立位時間を入力するだけで(または45/15や30/30などのプリセット比を選択)、仕事の開始時刻と終了時刻を設定すると、いつポジションを切り替えるべきかを正確に示す完全な時間ごとのスケジュールが生成されます。また、座り立ち比率の視覚的な内訳と、それがフルの就業時間中にどのように蓄積されるかを確認できるため、机やスタンディングデスクコンバーターでスケジュールを実装するのが簡単になります。

このツールは、立位スペースが限られた人向けの積極的な25/5ルーチンから、従来のオフィス設定向けのより均衡のとれた45/15または50/10スケジュールまで、複数の間隔比をサポートしています。特定の比率よりも一貫性が重要であることを忘れずに—定期的な動きの休憩は常に有益です。高さ調整可能なスタンディングデスク、立位カウンター、または単に短い歩き休憩を取っている場合でも、このツールは長期的な健康成果を改善する持続可能な姿勢切り替え習慣を構築するのに役立ちます。

よくある質問

コード実装

from datetime import datetime, timedelta

def sit_stand_schedule(
    work_hours: float,
    sit_minutes: int,
    stand_minutes: int,
    start_time: str = "09:00",
) -> list[dict]:
    """Generate a sit/stand schedule for the work day."""
    total_minutes = int(work_hours * 60)
    interval = sit_minutes + stand_minutes
    blocks = []

    current = datetime.strptime(start_time, "%H:%M")
    elapsed = 0

    while elapsed < total_minutes:
        # Sitting block
        sit_end = elapsed + sit_minutes
        if sit_end > total_minutes:
            sit_minutes_actual = total_minutes - elapsed
        else:
            sit_minutes_actual = sit_minutes

        blocks.append({
            "start": current.strftime("%H:%M"),
            "end": (current + timedelta(minutes=sit_minutes_actual)).strftime("%H:%M"),
            "action": "SIT",
            "minutes": sit_minutes_actual,
        })
        current += timedelta(minutes=sit_minutes_actual)
        elapsed += sit_minutes_actual

        if elapsed >= total_minutes:
            break

        # Standing block
        stand_end = elapsed + stand_minutes
        if stand_end > total_minutes:
            stand_minutes_actual = total_minutes - elapsed
        else:
            stand_minutes_actual = stand_minutes

        blocks.append({
            "start": current.strftime("%H:%M"),
            "end": (current + timedelta(minutes=stand_minutes_actual)).strftime("%H:%M"),
            "action": "STAND",
            "minutes": stand_minutes_actual,
        })
        current += timedelta(minutes=stand_minutes_actual)
        elapsed += stand_minutes_actual

    total_stand = sum(b["minutes"] for b in blocks if b["action"] == "STAND")
    extra_calories = total_stand * (50 / 60)  # ~50 kcal/hour standing vs sitting

    return blocks, round(extra_calories)

schedule, extra_cal = sit_stand_schedule(8, 45, 15)
for block in schedule:
    print(f"{block['start']}-{block['end']}: {block['action']} ({block['minutes']} min)")
print(f"\nExtra calories burned vs all-sitting: ~{extra_cal} kcal")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.