MyTetra Share
Делитесь знаниями!
Дата - Преобразование часов, минут и секунд в суммарное кол-во секунд и обратно
19.07.2018
19:39
Раздел: VBA - Access - msa.polarcom.ru - 14 Преобразование Чисел и Дат


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

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

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



Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования