Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 126
  • Last Modified:

Convert HH:MM to numbers with decimals

I'm trying to figure out how to convert hh:mm (hours and minutes) to numbers with decimals.  So for example:

01:00 would be 1.0 hours
01:30 would be 1.5 hours
00:45 would be .75 hours

etc., etc., etc.

Is there a formula for this?
0
SteveL13
Asked:
SteveL13
  • 5
  • 3
1 Solution
 
Rey Obrero (Capricorn1)Commented:
place this codes in a regular module

Function Convert2Dec(vTime) As Double
Convert2Dec = Val(vTime) + Split(vTime, ":")(1) / 60
End Function


then call the function
Convert2Dec("01:30")
0
 
SteveL13Author Commented:
I actually want to use it on a form.  So if Field1 is the original value I want to convert then Field2 needs to be the converted value.  

How do I do that?
0
 
Rey Obrero (Capricorn1)Commented:
me.field2=Convert2Dec(me.field1)
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
SteveL13Author Commented:
I'm getting an error:

Subscript out of range.

I have this in a module:

Function Convert2Dec(vTime) As Double

    Convert2Dec = Val(vTime) + Split(vTime, ":")(1) / 60
    
End Function

Open in new window


And I have this in the oncurrent event of the form that the two fields are on:

Private Sub Form_Current()

    Me.txtConvertedHrs = Convert2Dec(Me.txtHrVariance)

End Sub

Open in new window

0
 
Rey Obrero (Capricorn1)Commented:
check the value of Me.txtHrVariance

also,  change the function to this

Function Convert2Dec(vTime) As Variant
    If vTime & "" = "" Then Convert2Dec = Null: Exit Function
    If InStr(vTime, ":") = 0 Then Convert2Dec = Null: Exit Function
    Convert2Dec = CDbl(Val(vTime) + Split(vTime, ":")(1) / 60)
   
End Function
0
 
SteveL13Author Commented:
No more error.  But no results in the field txtConvertedHrs either.

The value in me.txtHrVariance is 0:30  (and the format is Short Time)

I have this in a module:

Function Convert2Dec(vTime) As Variant
     If vTime & "" = "" Then Convert2Dec = Null: Exit Function
     If InStr(vTime, ":") = 0 Then Convert2Dec = Null: Exit Function
     Convert2Dec = CDbl(Val(vTime) + Split(vTime, ":")(1) / 60)
     
 End Function

Open in new window


And I have this in the oncurrentevent of the form:

Private Sub Form_Current()

    Me.txtConvertedHrs = Convert2Dec(Me.txtHrVariance)

End Sub

Open in new window

0
 
Rey Obrero (Capricorn1)Commented:
if it is time, just use

cdbl(Me.txtHrVariance) * 24
0
 
Rey Obrero (Capricorn1)Commented:
Me.txtConvertedHrs = cdbl(Me.txtHrVariance) * 24
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 5
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now