Free Decimal Hours Converter
Convert between HH:MM time and decimal hours for payroll and timesheets, with rounding.
Convert HH:MM times to decimal hours (and back) for payroll and timesheets. Sum multiple entries and apply payroll rounding — all in your browser.
One entry per line: 8:30, 8h 30m, 8.5, 9:00-17:30, 9am-5:30pm or 22:00-06:00. Add a break with - 30 or (30).
Taken off start-end lines that have no break of their own.
Minutes to decimal hours chart
| Minutes | Exact | Tenth (0.1) | Quarter (0.25) |
|---|---|---|---|
| :00 | 0.00 | 0.0 | 0.00 |
| :01 | 0.02 | 0.0 | 0.00 |
| :02 | 0.03 | 0.0 | 0.00 |
| :03 | 0.05 | 0.1 | 0.00 |
| :04 | 0.07 | 0.1 | 0.00 |
| :05 | 0.08 | 0.1 | 0.00 |
| :06 | 0.10 | 0.1 | 0.00 |
| :07 | 0.12 | 0.1 | 0.00 |
| :08 | 0.13 | 0.1 | 0.25 |
| :09 | 0.15 | 0.1 | 0.25 |
| :10 | 0.17 | 0.2 | 0.25 |
| :11 | 0.18 | 0.2 | 0.25 |
| :12 | 0.20 | 0.2 | 0.25 |
| :13 | 0.22 | 0.2 | 0.25 |
| :14 | 0.23 | 0.2 | 0.25 |
| :15 | 0.25 | 0.3 | 0.25 |
| :16 | 0.27 | 0.3 | 0.25 |
| :17 | 0.28 | 0.3 | 0.25 |
| :18 | 0.30 | 0.3 | 0.25 |
| :19 | 0.32 | 0.3 | 0.25 |
| :20 | 0.33 | 0.3 | 0.25 |
| :21 | 0.35 | 0.3 | 0.25 |
| :22 | 0.37 | 0.4 | 0.25 |
| :23 | 0.38 | 0.4 | 0.50 |
| :24 | 0.40 | 0.4 | 0.50 |
| :25 | 0.42 | 0.4 | 0.50 |
| :26 | 0.43 | 0.4 | 0.50 |
| :27 | 0.45 | 0.5 | 0.50 |
| :28 | 0.47 | 0.5 | 0.50 |
| :29 | 0.48 | 0.5 | 0.50 |
| :30 | 0.50 | 0.5 | 0.50 |
| :31 | 0.52 | 0.5 | 0.50 |
| :32 | 0.53 | 0.5 | 0.50 |
| :33 | 0.55 | 0.6 | 0.50 |
| :34 | 0.57 | 0.6 | 0.50 |
| :35 | 0.58 | 0.6 | 0.50 |
| :36 | 0.60 | 0.6 | 0.50 |
| :37 | 0.62 | 0.6 | 0.50 |
| :38 | 0.63 | 0.6 | 0.75 |
| :39 | 0.65 | 0.7 | 0.75 |
| :40 | 0.67 | 0.7 | 0.75 |
| :41 | 0.68 | 0.7 | 0.75 |
| :42 | 0.70 | 0.7 | 0.75 |
| :43 | 0.72 | 0.7 | 0.75 |
| :44 | 0.73 | 0.7 | 0.75 |
| :45 | 0.75 | 0.8 | 0.75 |
| :46 | 0.77 | 0.8 | 0.75 |
| :47 | 0.78 | 0.8 | 0.75 |
| :48 | 0.80 | 0.8 | 0.75 |
| :49 | 0.82 | 0.8 | 0.75 |
| :50 | 0.83 | 0.8 | 0.75 |
| :51 | 0.85 | 0.9 | 0.75 |
| :52 | 0.87 | 0.9 | 0.75 |
| :53 | 0.88 | 0.9 | 1.00 |
| :54 | 0.90 | 0.9 | 1.00 |
| :55 | 0.92 | 0.9 | 1.00 |
| :56 | 0.93 | 0.9 | 1.00 |
| :57 | 0.95 | 0.9 | 1.00 |
| :58 | 0.97 | 1.0 | 1.00 |
| :59 | 0.98 | 1.0 | 1.00 |
🔒 Everything is converted in your browser — nothing is uploaded.
Common uses
- Time to DecimalConvert HH:MM into decimal hours.
- Decimal to TimeConvert decimal hours back to HH:MM.
- Payroll HoursTotal timesheet hours for payroll.
- Timesheet to DecimalTurn a timesheet into decimal hours.
- Quarter-Hour RoundingRound hours to the nearest quarter.
- Minutes to DecimalConvert minutes into a decimal of an hour.
How It Works
Convert HH:MM times into decimal hours and back, sum a list of times, and apply payroll rounding (quarter-hour, tenth-hour or nearest minute). Perfect for timesheets and payroll — all in your browser.
- 1Pick a directionTime → decimal, or decimal → time.
- 2Enter your timesOne HH:MM per line; they are summed for you.
- 3Choose roundingNone, nearest quarter, tenth or minute.
- 4Read the resultPer-line decimals and a rounded total.
Everything is converted in your browser — nothing is uploaded.
Guide
Worked example
The page opens with 8:30, 7:15 and 6:45 in "Durations or shifts, one per line". "Payroll rounding" starts on "Nearest 0.01 h (2 decimals)", so the rows read 8.50 h, 7.25 h and 6.75 h, and the total box reads "Total (22:30)" with 22.50 h. Add a fourth line, 9:00-17:30, and type 30 in "Unpaid break (min)": that row shows 8.00 h with "8:00 worked · 30 min break", and the total becomes "Total (30:30)", 30.50 h. Type 20 in "Hourly rate (optional)" and "Gross pay (30.50 h × 20.00)" shows 610.00. Pick "Weekly, all lines" under "Overtime" and set "Over (h)" to 30: gross pay becomes 615.00, with "Regular: 30.00 h = 600.00 · Overtime: 0.50 h × 1.5 = 15.00". In "Decimal → Time", 8.75 gives 8:45.
Which settings to use, and the limits
- Write each entry on its own line, in any common form. The box reads 8:30, 8h 30m, 8.5, 830, 9:00-17:30, 9am-5:30pm and 22:00-06:00. Seconds work too, as in 1:30:30, and durations over 24 hours such as 25:30 are fine. An end earlier than the start counts as past midnight, so 22:00-06:00 is 8:00. Add a break to a shift with - 30, (30) or the words break, lunch or unpaid, as in 9-17 lunch 30. A bare one- or two-digit number is hours, and 8,5 is read as 8.5. Three or four digits are read as H:MM, so 830 is 8:30.
- Pick the rounding to match your payroll. "Payroll rounding" offers "Nearest 0.01 h (2 decimals)", "No rounding", "Nearest quarter hour (0.25)", "Nearest tenth hour (0.1)" and "Nearest minute". "No rounding" and "Nearest minute" show four decimals, the others two. Quarter hours round at 7.5 minutes, so 7:07 gives 7.00 and 7:08 gives 7.25. The total is normally rounded once from the exact minutes of all lines. Tick "Round each line first, then add them up (payroll punch rounding)" to round every line and add the rounded values instead.
- Take an unpaid break off every shift. "Unpaid break (min)" removes the same number of minutes from every start-end line that has no break of its own; plain durations such as 8:30 are not changed, and the break taken from the box is never longer than the shift. A break written on the line, such as 8:30-17:00 - 45, wins over the box. Each shift row shows how it was worked out, for example "7:45 worked · 45 min break". The box takes decimals too, and a negative value is treated as 0.
- Add a rate and overtime for a gross pay line. Type an "Hourly rate (optional)" to show "Gross pay". "Overtime" offers "No overtime", "Daily, per line" and "Weekly, all lines". Choosing daily sets "Over (h)" to 8 and weekly sets it to 40, and you can change either. "Pay multiplier" starts at 1.5. Daily counts the hours of each line above the limit, weekly counts the total above it. The pay uses the rounded hours. If "Over (h)" is not a number or is negative, overtime is switched off, and a multiplier that is not a positive number is replaced by 1.5.
- Convert decimals back to hours and minutes. "Decimal → Time" takes one value per line, such as 8.75 or 8,75, with an optional h, hr or hours after it, and answers in H:MM: 8.75 is 8:45 and 0.1 is 0:06. Negative numbers and values containing a colon show "invalid". In the other mode, "Decimal separator" offers "Dot (8.50)" and "Comma (8,50)". It sets how results are written and copied, starts from your page language, and does not stop you typing either mark.
- Copy the table, share it or come back to it. "Copy for spreadsheet" copies tab-separated text with the headings "Entry", "Decimal hours" and "Time" and a "Total" row, and "Download TSV" saves the same as decimal-hours.tsv. Both use the chosen separator. "Share result" puts the lines and settings after the # in the address, including the hourly rate if you typed one; a list longer than 500 characters is left out. The page also keeps your entries and settings in this browser. "Minutes to decimal hours chart" is open on wide screens and closed on phones.
Common problems and how to fix them
- A row says "invalid" with "Did you mean 8.75?" beside "Use it".
- That is the result for 8:75. Minutes above 59 are refused in H:MM, so 8:75 and 12:60 fail. The suggestion turns the colon into a decimal point, which means 8.75 hours, or 8:45. If you meant 8 hours 75 minutes, that is 9:15, so type that instead. "Use it" replaces the line with the suggestion, so read the suggestion before you press it.
- A shift written as 8-5 shows 21.00 h.
- Without am/pm or minutes, 8-5 is read as 8:00 to 5:00 the next morning, because an end earlier than the start counts as past midnight. Write 8am-5pm or 8:00-17:00. The same rule gives 17:30-9:00 as 15:30, which is right for a night shift, so check the "worked" text under each row. An end equal to the start gives 0.
- Typing 45 for 45 minutes gives 45.00 h.
- A bare one- or two-digit number is hours: 45 is 45 hours, 8 is 8:00 and 0.5 is 0:30. Three or four digits are read as H:MM, so 100 is 1:00 and 830 is 8:30. For minutes write 45m, 45 min or 0:45. A lone 8:30pm is read as a duration of 20:30, so use start-end lines for clock times.
- The total is not the sum of the rows I see.
- Unless "Round each line first, then add them up (payroll punch rounding)" is ticked, the total is rounded once from the exact total minutes. With "Nearest quarter hour (0.25)", three lines of 7:10 each show 7.25 h but the total is 21.50 h, not 21.75. Tick the box if your payroll rounds every punch. The brackets after "Total" always show the exact H:MM sum.
- A line with two shifts is marked "invalid".
- Each line must be one duration or one shift, so 8:30 - 12:00, 13:00 - 17:00 cannot be read as it stands. The suggestion reads "Did you mean 8:30 - 12:00 / 13:00 - 17:00?", and "Use it" puts each shift on its own line, keeping both. You can also split the line yourself. A label before a shift is safe to strip: "Mon 9:00-17:30" is offered as 9:00-17:30, because words of three or more letters are removed.
How it compares
A spreadsheet is the better home for a timesheet you keep and edit across weeks, and it can hold dates and names. This page is quicker for a one-off conversion and accepts messy entries such as 9am-5:30pm or 8h 30m. It converts and adds times, applies one rounding rule and one overtime threshold, and shows gross pay. It has no dates, so a shift is only a length. It does not combine daily and weekly overtime, does not do double time and does not know local labour rules, so check the result against your employer's policy.
Related Tools
Time Card Calculator
Add daily clock-in/out times and unpaid breaks to total your weekly work hours, with optional overtime past 40 hours and gross pay from your hourly rate.
Timesheet Calculator
Weekly timesheet with per-day start/end/break, cross-midnight shifts, FLSA or California overtime and gross pay. Saved in your browser, CSV export. Free and private.
Time Calculator
Add or subtract HH:MM:SS durations, or find the time between two timestamps. Useful for work logs, race splits, and project tracking.