Страницы: 1
RSS
Как отобразить промежуток времени в днях, часах, минутах, секундах
 
Здравствуйте. Имеется вот такой код:
Код
TextBox68.Value = Format(Range("B132").Value, "hh:mm:ss")
Как добавить в формат еще и дни, чтобы получилось так: "dd:hh:mm:ss". Не могу прислать файл примера по техническим причинам, чуть позже будет, если  вам потребуется.

У меня только один вариант: создать накопитель и условие, в котором при достижении 24 часов, счетчик будет прибавлять единицу каждый раз к дням. И, используя амперсанд, объединять данный формат с накопителем или просто использовать DateAdd.

Т.е. если 24:23:15, то получаем 01:00:23:15 - примерно так должно получиться.

Может подкинете совет какой-нибудь? Или готовое решение?
 
так и добавьте: "DD:hh:mm:ss"
и подумайте, может, сначала самому что-то попробовать, а потом вопросы строчить
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, я обращаюсь в чат, а не строчу, только когда сам все перепробую. Вы, наверное, думаете, что я от нечего делать сюда захожу. Спасибо за добрейший ответ, но то, что вы предложили, я первым делом сделал. Чуть позже файл-пример загружу, может кто подскажет, почему не получается.  
Изменено: НСС - 15.08.2020 16:35:40
 
извините, но ответ довольно очевидный (в т.ч. и вам судя по сообщению 1)
не получается - значит что-то в данных не то. и правильно, - наличие файла позволит понять что именно
Изменено: Ігор Гончаренко - 15.08.2020 16:39:30
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Код
Debug.Print Format(Now, "DD:hh:mm:ss")

Выдает 15:17:20:35
Изменено: sokol92 - 15.08.2020 17:20:58
Владимир
 
Здравствуйте. Возвращаюсь к теме с примерами, т.к. вчера такой возможности не было.
На гиф изображении (см. ячейку выделенную оранжевым цветом), при количестве дней более 31, они обнуляются и счет идет сначала, то же самое касается минут, часов и тд.
Я применил накопитель, как и писал в своем первом сообщении. См. ячейку, выделенную красным цветом. В этом и заключался вопрос: можно ли форматом или другим способом накапливать сутки в счетчике, может более красивое и простое решение предложите, нежели это:

Код
Private Sub CommandButton5_Click()
Dim a&, b&, c As Variant

a = Range("A17").Value
b = Range("A18").Value

Range("A18").Value = b + a

b = a + b

c = (Int(b / 24)) & ":" & Format(b / 24, "hh:mm:ss")
Range("A19").Value = c

End Sub
Изменено: НСС - 16.08.2020 14:33:37
 
Можно и так:
Код
' Возвращает время (в дробных днях) в виде dd:hh:mm:ss
Function DaysTime(ByVal d)
   DaysTime = Int(d) & Format(d, "\:hh\:mm\:ss")
End Function

Sub test()
  Debug.Print DaysTime(26 + 908 / 24)
End Sub
Владимир
 
Цитата
НСС написал:
Как создать формат отображения дней, часов, минут, секунд в элементе управления формы или в ячейке.
и где тут тот элемент управления формы, в котором нужно создать формат отображения дней, часов, минут, секунд?
где он???
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, да я уж не стал форму с элементами управления делать. Нужно сделать и вместо Range  написать UserForm. Textbox в коде, суть изменится? Я же поставил в сообщении союз "или", зачем придираться?  
Изменено: НСС - 16.08.2020 15:37:25
 
sokol92, спасибо. Адаптировал ваш код под свои нужды, несколько изменив его.  
 
Это Ваш, адаптированный мною, код. :)

Для модераторов тема: Как отобразить промежуток времени в днях, часах, минутах, секундах.
Владимир
 
см.вложение
Изменено: Ігор Гончаренко - 16.08.2020 16:32:57
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх