Рабочее время с изюминкой

Уважаемые математики и формулисты! Помогите, сломал голову в поисках решения.

Задача лишь отчасти связана с программированием, поэтому я внесу ясность по некоторым моментам если потребуется, но основной вопрос именно математический.

Итак, у меня есть интервальное поле. Которое принимает в себя мс(миллисекунды). Значение конвертируется, в соответствии с 24-часовым днем и отображается таким образом:

99000000мс - будут отображаться как 1d3h30m

А я в этом поле хочу видеть расчет с учетом 8ми-часового рабочего дня. Т.е. в моем примере (99000000мс), что фактически является 27.5h - я хочу видеть 3d3h30m

Вопрос: можно ли составить какую-либо формулу, которая бы конвертировала фактическое время в желаемое.

Ведь фактически, если в поле будет отображаться 3d3h30m - это уже реальных 271800000мс

p.s. допустимо работать с числами и выполнять арифметические действия. Т.к. по сути я могу интервальное поле привести к числовому (в кол-ве мс) и наоборот.

Лига математиков

1.2K поста2.6K подписчиков

Автор поста оценил этот комментарий

Спасибо, за детальное объяснение. Но видимо или я изъяснился не так или вы недопонимаете.

Каким образом рассчитать рабочее (8ми-часовое время) из имеющихся 99000000мс мне известно.

Моя задача состоит в том, как эти 3d3h30m преобразовать в 24-формат.

Т.е. заставить поле отображать нужные мне 3d3h30m.

Еще раз: т.к. в поле 24h = 1d то чтобы заставить отображать 3d3h30m - мне нужно поместить туда: 271800000мс

Вот тогда будет отображаться нужное мне значение.

Но я уже почти дошел до этого этапа, поэтому как реализую - поделюсь.

number w = n / (5*8*60*60);

number d = n % (5*8*60*60) / (8*60*60);

number h = n % (8*60*60) / (60*60);

number m = n % (60*60) / 60;

upd: сейчас планирую создать функцию на основе этого, где полученные результаты - буду приводить к реальному кол-ву мс. и по логике должен получить нужные 271800000мс

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

собственно да! получилось! Полученные значения были обрезаны до целой части. А в последствии:

interval need = (w*604800000)+(d*86400000)+(h*3600000)+(m*60000);

дает нам нужное кол-во мс :)

Всем большое спасибо. Иногда решение в голове вроде есть, но без посторонней помощи - голову в порядок не привести. Наверное, пересидел я над поиском извращенного решения. А по сути - все на поверхности.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества