Skip to main content
Inspiring
June 30, 2014
Question

How to convert minutes to decimal

  • June 30, 2014
  • 2 replies
  • 841 views

I need to convert my minutes in my HH:MM record to decimal.

For example if I have 43 hours and 15 minutes (43:15) I need to return the result 43.25 hours

and if i have 10 hours and 30 minutes I need to return 10.50 hours.

How do I do this?

This topic has been closed for replies.

2 replies

BKBK
Community Expert
Community Expert
July 1, 2014

If you need to round off to 2 decimals and to pad with 0s, that is, 10.50 instead of 10.5, then adapt Carl's solution to

<cfset MyDecimalTime = numberFormat(ListFirst(MyTime, ":") + (ListLast(MyTime, ":") / 60), "00.00")>

Carl Von Stetten
Legend
June 30, 2014

How do I do this?

The simple answer: with math.

Longer answer: parse it using list functions and then do some math.  Like this:

<cfset MyTime = "43:15">

<cfset hours = ListFirst(MyTime, ":") > <!--- get the hours part --->

<cfset minutes = ListLast(MyTime, ":") > <!--- get the minutes part --->

<cfset decimalMinutes = minutes / 60 > <!--- Calculate minutes as decimal of an hour --->

<cfset MyDecimalTime = hours + decimalMinutes > <!--- Put it all back together as decimal hours --->

Or, in more terse form:

<cfset MyTime = "43:15">

<cfset MyDecimalTime = ListFirst(MyTime, ":") + (ListLast(MyTime, ":") / 60) >

HTH,

-Carl V.