Перейти к содержимому

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.