Как из секунд получить часы минуты и секунды
Перейти к содержимому

Как из секунд получить часы минуты и секунды

  • автор:

Перевести секунды в часы минуты секунды

Онлайн калькулятор поможет выразить время из секунд перевести в часы минуты секунды. Введите секунды и получите результат в формате: Часы (ч, h); Минуты (мин, min); Секунды (сек, sec).

Например переведём 83540 секунд:
1. Разделим на 3600 и узнаем сколько часов — 83540 / 3600 = 23 (целых) часа.
2. Получим остаток 83540 — 23 × 3600 = 740 секунд и разделим на 60, получаем 12 (целых) минут.
3. Получим остаток 740 — 12 × 60 = 20 — это будут оставшиеся секунды.
Получаем в итоге 83540 секунд — это 23 часа, 12 минут и 20 секунд.

Как перевести секунды в часы и минуты?

Иногда возникают задачи, требующие перевода интервала, представленного в секундах, в пригодном для восприятия виде. Стандартных функций для этого нет, поэтому придется экспериментировать самим. Давайте представим, что у нас есть переменная, содержащая наш интервал:

КоличествоСекунд = 7210;

Все мы знаем, что в одном часе 3600 секунд (60 минут по 60 секунд), поэтому, если мы разделим наш интервал на 3600, то получим в целой части количество часов, а в остатке количество секунд, которые могут быть и минутами, и секундами:

//получаем часы Часы = Цел(КоличествоСекунд / 3600); //считаем остаток ОстатокСекунд = КоличествоСекунд - Часы * 3600; //или ОстатокСекунд = КоличествоСекунд % 3600; 

В идеале нам нужны только два оператора:

  1. оператор деления /
  2. оператор остатка от деления %

Теперь нам нужно аналогичным образом получить количество минут:

//получаем минуты Минуты = Цел(ОстатокСекунд / 60);//в минуте 60 сек 

Ну, а остаток — это наши секунды:

Секунды = ОстатокСекунд % 60; 

Давайте посмотрим, что мы получили:

Сообщить("" + Часы + " часов, " + Минуты + " минут, " + Секунды + " секунд"); //Результат: // 2 часов, 0 минут, 10 секунд 

Если собрать все воедино, наша функция будет выглядеть так:

Функция ПериодЧасыМинутыСекунды(Знач КоличествоСекунд) Перем Часы, Минуты, Секунды; //получаем часы Часы = Цел(КоличествоСекунд / 3600); //считаем остаток КоличествоСекунд = КоличествоСекунд % 3600; //получаем минуты Минуты = Цел(КоличествоСекунд / 60);//в минуте 60 сек //остались секунды Секунды = КоличествоСекунд % 60; Возврат ("" + Часы + " часов, " + Минуты + " минут, " + Секунды + " секунд"); КонецФункции 

Попробуйте самостоятельно доработать ее так, чтобы она считала еще и количество дней)

Конвертация из секунд в дни, часы, минуты и секунды

Требуется написать структуру времени, метод set получает в параметры кол-во секунд в единицах. Ошибка возникает когда ввожу в метод, к примеру, -600. Поля становятся равными -1 23 49 0, а должны -1 23 50 0. Подскажите, в чём проблема.

Отслеживать
задан 19 мар 2021 в 19:41
Максим Филимонов Максим Филимонов
85 1 1 серебряный знак 9 9 бронзовых знаков

Какой алгоритм пересчёта отрицательных секунд в дни, часы и т.д.? Почему -600 это -1 23 50 0 , а не, например, минус 10 минут?

19 мар 2021 в 19:47

@wololo, к примеру, -1 секунда = — 1 день 23 часа 59 минут 59 секунд, то есть -24:00:00+23:59:59 = -1, где -1 день, который добавляется к отрицательным дням с остатком.

19 мар 2021 в 19:51
Иными словами, если к -1 23 59 59 прибавить одну секунду то это будет 0 0 0 0
19 мар 2021 в 19:52
@wololo, будет -1 23 59 59
19 мар 2021 в 19:58
@wololo, 1 23 59 59
19 мар 2021 в 20:01

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Полагаю, вам нужно что-то вроде такого:

#include #include using std::cout; using std::endl; struct my_time < long long day, hour, minute, second; my_time& set(long long t) < const long long SECONDS_IN_MINUTE = 60LL; const long long SECONDS_IN_HOUR = SECONDS_IN_MINUTE * 60LL; const long long SECONDS_IN_DAY = SECONDS_IN_HOUR * 24LL; day = t / SECONDS_IN_DAY; t -= day * SECONDS_IN_DAY; if (t < 0) < --day; t += SECONDS_IN_DAY; >hour = t / SECONDS_IN_HOUR; t -= hour * SECONDS_IN_HOUR; minute = t / SECONDS_IN_MINUTE; t -= minute * SECONDS_IN_MINUTE; second = t; return *this; > >; std::ostream& operator <<(std::ostream& out, const my_time& mt) < out << " " << std::setw(3); out << mt.day << " " << std::setw(2); out << mt.hour << " " << std::setw(2); out << mt.minute << " " << std::setw(2); out << mt.second; return out; >void print(long long t) < cout int main() < const long long test[] = < 600, -600, 0, 1, 86399, 86400, 86401, 172799, 172800, 172801, -1, -86399, -86400, -86401, -172799, -172800, -172801 >; for (auto t: test) print(t); > 
t: 600 my_time: 0 0 10 0 t: -600 my_time: -1 23 50 0 t: 0 my_time: 0 0 0 0 t: 1 my_time: 0 0 0 1 t: 86399 my_time: 0 23 59 59 t: 86400 my_time: 1 0 0 0 t: 86401 my_time: 1 0 0 1 t: 172799 my_time: 1 23 59 59 t: 172800 my_time: 2 0 0 0 t: 172801 my_time: 2 0 0 1 t: -1 my_time: -1 23 59 59 t: -86399 my_time: -1 0 0 1 t: -86400 my_time: -1 0 0 0 t: -86401 my_time: -2 23 59 59 t: -172799 my_time: -2 0 0 1 t: -172800 my_time: -2 0 0 0 t: -172801 my_time: -3 23 59 59 

Конвертер секунды в Часы:Минуты:Секунды

Онлайн конвертер секунды в Часы:Минуты:Секунды поможет вам конвертировать секунды в формат HH:MM:SS.

Инструменты для украшения и уменьшения

Украшатель CSS

Украшает, форматирует и сделает CSS код более читаемым.

Уменьшитель CSS

Сделает CSS код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.

Украшатель HTML

Украшает, форматирует и сделает HTML код более читаемым.

Уменьшитель HTML

Сделает HTML код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.

Украшатель Javascript

Украшает, форматирует и сделает Javascript код более читаемым.

Уменьшитель Javascript

Сделает Javascript код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.

Обфускатор Javascript

Сделает Javascript код более сложным для понимания или чтения для защиты.

Украшатель JSON

Украшает, форматирует и сделает JSON код более читаемым.

Уменьшитель JSON

Сделает JSON код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.

Украшатель XML

Украшает, форматирует и сделает XML код более читаемым.

Уменьшитель XML

Сделает XML код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.

Украшатель OPML

Украшает, форматирует и сделает OPML код более читаемым.

Уменьшитель OPML

Сделает OPML код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.

Украшатель SQL

Украшает, форматирует и сделает SQL код более читаемым.

Уменьшитель SQL

Сделает SQL код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *