TopPicLogo TopPicText

Преобразование часов, минут и секунд в суммарное кол-во секунд и обратно

Работает примерно так:

Private Sub testTimeInSeonds()
Dim i As Long
Dim h As Long, m As Long, s As Long, x As Long
    i = 3725 'Задаем время в секундах

    h = esSecondsToTime(i, 1)
    m = esSecondsToTime(i, 2)
    s = esSecondsToTime(i, 3)
    x = esTimeToSeconds(h, m, s)
    Debug.Print "    " & i & " сек. это = " & h & " ч. + " & m & " мин. + " & s & " сек."
    Debug.Print "    " & h & " ч. + " & m & " мин. + " & s & " сек. = " & x & " сек."
End Sub


Напишет:

    3725 сек. это = 1 ч. + 2 мин. + 5 сек.
    1 ч. + 2 мин. + 5 сек. = 3725 сек.



Собственно Функции:

Private Function esSecondsToTime(lngSec As Long, WhatReturn As Byte) As Long
'es 27.08.04
'Преобазование времени в секундах в Часы, Минуты или Секунды
' по аргументу WhatReturn
'   1 - Часы
'   2 - Минуты
'   3 - Секунды
'--------------------------------------------------------------------
Dim h As Long, m As Long, s As Long, x As Long
On Error GoTo SecondsToTimeErr
    x = lngSec
    h = x \ 3600
    x = x - (h * 3600)
    m = x \ 60
    x = x - m * 60
    s = x
    Select Case WhatReturn
        Case 1: esSecondsToTime = h 'Возвращаем целые ЧАСЫ
        Case 2: esSecondsToTime = m 'Возвращаем целые МИНУТЫ (остаток от часов)
        Case 3: esSecondsToTime = s 'Возвращаем остаток секунд
        Case Else: esSecondsToTime = 0
    End Select
    Exit Function
SecondsToTimeErr:
    esSecondsToTime = 0
End Function


Private Function esTimeToSeconds(lngH As Long, lngM As Long, lngS As Long) As Long
'es 27.08.04
'Возвращает результат преобазования Часов,Минут и Секунд в суммарное кол-во секунд
'По аргументам
'   lngH - кол-во часов
'   lngM - кол-во минут
'   lngS - кол-во секунд
'--------------------------------------------------------------------

On Error GoTo TimeToSecondsErr
    esTimeToSeconds = lngH * 3600
    esTimeToSeconds = esTimeToSeconds + lngM * 60
    esTimeToSeconds = esTimeToSeconds + lngS
    Exit Function
TimeToSecondsErr:
    esTimeToSeconds = 0
End Function
Назад ToTop
L.E. 06.05.2017
Рейтинг@Mail.ru