After looking at the time functions more closely, can anyone explain why:

Second("00005:00006:00007") = 7
Minute("00005:00006:00007") = 6
Hour("0005:00006:00007") = 5

It looks like VB splits the time components then incorrectly cuts any leading zeros out of each time component. For example for:
hour = 00005 but then VB incorrectly removes leading zeros so hour then becomes:
hour = 5

In fact VB should remove a single leading zero if it exists i.e. 05 should become 5, but 005 should not become 5 it should produce an error.

Note that VB only removes leading zeros:
Second("00005:00006:000070")
Incorrectly VB reduces it to Second = 70 which produces an error as 70 > 59.

As a result are there API functions that can be used in place of these time functions, or do I just rewrite these functions in VB?

Regards

James