TimeSerial Function

Calculates a serial time value for the specified hour, minute and second parameters that are passed as numeric values. You can then use this value to calculate the difference between times.

Syntax:

TimeSerial (hour, minute, second)

Return value:

Date

Parameters:

hour: An integer expression that indicates the hour of the time that is used to determine the serial time value. Values in the range 0 to 23 are valid.

minute: An integer expression that indicates the minute of the time that is used to determine the serial time value. In general, use values in the range 0 to 59. However, you can also use values that lie outside of this range, where the number of minutes influence the hour value.

second: An integer expression that indicates the second of the time that is used to determine the serial time value. In general, you can use values in the range 0 to 59. However, you can also use values that lie outside of this range, where the number seconds influences the minute value.

Examples:

12, -5, 45 corresponds to 11, 55, 45

12, 61, 45 corresponds to 13, 2, 45

12, 20, -2 corresponds to 12, 19, 58

12, 20, 63 corresponds to 12, 21, 4

You can use the TimeSerial function to convert any time into a single value that you can use to calculate time differences.

The TimeSerial function returns the type Variant with VarType 7 (Date). This value is stored internally as a double-precision number in the range 0 to 0.9999999999. As opposed to the DateSerial or DateValue function, where the serial date values are calculated as days relative to a fixed date, you can calculate with values returned by the TimeSerial function, but you cannot evaluate them.

In the TimeValue function, you can pass a string as a parameter containing the time. For the TimeSerial function, however, you can pass the individual parameters (hour, minute, second) as separate numeric expressions.

Error codes:

5 Invalid procedure call

Example:

Sub ExampleTimeSerial

Dim dDate As Double, sDate As String

    dDate = TimeSerial(8,30,15)

    sDate = TimeSerial(8,30,15)

    MsgBox dDate,64,"Time as a number"

    MsgBox sDate,64,"Formatted time"

End Sub