Time calculator

Sixty minutes to the hour, with the carrying written out.

Runs locally

What time is it a given number of hours and minutes after (or before) a start time?

09:00 plus 2:45 is 11:45, the same day

11:45

How that was worked out

  1. Turn the duration into minutes — this is the step a decimal calculator gets wrong2 h 45 min = 2 × 60 + 45 = 165 min
  2. Turn the start time into minutes past midnight09:00 = 9 × 60 + 0 = 540 min
  3. Add it on540 + 165 = 705 min
  4. Back to a clock reading, carrying at 60 rather than at 100705 min = 11:45
  • Which daythe same day
  • The duration in decimal hours2.75 h
  • The duration in minutes165

This page does clock arithmetic only. It does not apply time zones and it does not know about daylight saving, so a shift that spans a clock change really is an hour longer or shorter than the figure here. It also does not know your rounding and break rules — those come from an employer, a contract or local labour law, not from arithmetic. Check the result against your own agreement before it becomes a number on a timesheet or an invoice.

Runs entirely in your browser — open DevTools and check the Network tab

Add hours and minutes to a starting time, measure the gap between two clock readings, turn a shift into paid hours once the break comes off, or convert between 7:30 and 7.5. A clock counts in sixties while every other tool on your desk counts in tens, which is what makes this arithmetic so easy to get wrong and so hard to spot afterwards. Each answer here arrives with the crossing point shown.

A clock carries at sixty, and nothing else on your desk does

Almost every counting system you touch during a working day carries at ten. A spreadsheet does, the calculator on your phone does, the figure at the bottom of a payslip does. A clock does not: the minute column runs from 0 to 59 and then rolls the hour on. That single difference is where time arithmetic goes wrong, and it goes wrong quietly, because what comes back is a plausible-looking number rather than an error.

Type 7:45 plus 6:30 into an ordinary calculator and it reads the colons as decimal points, carries at ten, and returns 13.75. Read the same two figures as hours and minutes and the answer is 14:15, which is forty minutes further along. Neither number looks wrong on its own. Do it twenty times while building a monthly total and the sheet is out by more than a full working day.

The reliable way through is to leave the sixty-based notation as early as possible. Convert both durations into plain minutes, add or subtract them there where every column carries at ten again, and convert back only at the very end. Every answer on this page is worked that way, and each step is printed, so the crossing point is something you can look at rather than something you are asked to take on trust.

Midnight is a modulus, not a boundary

A clock reading is a position inside a repeating cycle of 1,440 minutes, not a point on a timeline. That is why 23:30 plus two hours gives 01:30 rather than 25:30, and it is also why a bare clock reading is only half an answer: 01:30 says nothing about which day it lands on. Anything that has to be acted on — a shift, a flight, a maintenance window — needs the date carried next to the time, and dropping it is one of the most productive sources of scheduling mistakes there is.

The same cycle produces two readings for one instant. 24:00 and 00:00 sit at the same position but belong to different days, and timetables use the distinction on purpose: a departure listed at 24:00 closes the previous service day, one listed at 00:00 opens the next. Software that treats the two as interchangeable produces errors exactly one day wide, and they survive testing comfortably because they appear at one minute out of 1,440.

Given a finish time that falls earlier in the day than the start, this page assumes the pair runs overnight and adds a day back, because that is what a night shift looks like. It says so rather than doing it silently, and it also prints what the gap would be if both readings really were on the same date. That figure is a negative length of time, which is almost always the signature of two boxes filled in the wrong order.

Decimal hours are a third notation, and 7.30 is none of them

Payroll systems, invoices and project trackers usually want hours as a decimal, so seven hours and thirty minutes becomes 7.5. The digits after the point are sixtieths of an hour rather than minutes, which is why the same duration written three ways — 7:30, 7.5 and 7.30 — contains one matching pair and one impostor. The third is what you get by reading the colon as a decimal point, and it is eighteen minutes short of the other two.

The conversion lands on a single decimal place only when the minutes are a multiple of six, because six minutes is exactly a tenth of an hour. Twelve, eighteen, twenty-four and thirty convert cleanly. Forty-five becomes 0.75, and twenty becomes 0.333 recurring — which is the reason a decimal timesheet limited to two places cannot land on every minute. One hundredth of an hour is thirty-six seconds, so a system holding 7.33 has already drifted twelve seconds from a clock holding 7:20.

None of that matters for a single entry and all of it matters across two hundred. Where a payroll system rounds to two decimal places and a clocking system stores whole minutes, the two disagree by seconds per shift in a direction that depends on the individual figures. Deciding which of them is the record of truth is an administrative call rather than an arithmetic one, but it cannot be made at all by somebody who does not know the two notations are different.

Take the break off before you divide, not after

A shift from 09:00 to 17:30 with an hour of unpaid break is not a decimal subtraction done in whatever order feels natural. Work the whole thing in minutes: 510 on the clock, 60 taken off, 450 left, and only then divide by sixty to reach 7.5 paid hours. Dividing first and subtracting afterwards happens to agree here, and stops agreeing the moment the break is not a whole number of hours.

Twenty minutes is the case that catches people. Removed first, 510 minus 20 leaves 490 minutes, which is 8.1666 hours. Removed after converting, 8.5 minus 0.2 gives 8.3 — a figure that describes two tenths of an hour rather than twenty minutes, and runs eight minutes generous. The error gets past review because 0.2 looks like an entirely reasonable way to write twenty of something.

Rounding is the second half of the same problem. Rounding each shift to the nearest quarter hour and then totalling produces a different month from totalling the exact minutes and rounding once at the end, and the gap widens with the number of entries. Neither method is objectively right — they are two rules, picked by whoever wrote the policy — and when two systems report different monthly totals, this is far more often the reason than a defect in either one.

The hour that does not exist, and the hour that happens twice

Twice a year, in the places that observe it, daylight saving takes an hour out of one night and hands it back on another. A shift running 22:00 to 06:00 across a spring transition is seven hours long rather than eight, and the same shift in autumn is nine. Every clock involved is telling the truth. What changed is the length of the night, and payroll disputes cluster on those two dates with great reliability.

This page deliberately applies none of that. It does clock arithmetic and says so, because a calculator that quietly applied a time zone would first have to guess which one you meant, and a wrong guess is much worse than no guess: it returns an answer that is confidently and invisibly an hour out. Where the date and the location matter, the answer has to come from a calendar system that holds both, not from a page that can see two clock readings and nothing else.

The practical rule for anything crossing one of those nights is to work from elapsed time rather than from clock readings. A machine that records four hundred and eighty minutes of run time has written down something that survives a clock change. A machine that records only a start at 01:30 and a stop at 03:00 has written down a duration that depends on information which is not in the record at all.

What a break really costs, and why nine to five is not eight hours

The distance between the two times on a contract and the hours that reach a payslip is made of unpaid breaks, and the arithmetic is unforgiving. Nine to five is eight hours on the clock and seven paid once an hour of lunch comes out. Eight to five is nine and eight. Across a five-day week, the difference between counting the break and forgetting it adds up to a full working day every month.

Break rules themselves are not arithmetic, which is the part no calculator can settle. Some are set by law after a number of continuous hours, some by a contract, some by local habit, and whether a short rest is paid varies across all three. What a calculator can do is keep the assumption visible: give the unpaid minutes a box of their own, so that the figure being subtracted is never left implicit inside somebody elses spreadsheet formula.

The most common mistake at this point is a unit error rather than a rule error. An hour typed into a minutes box as 1 removes a single minute, and the result looks very nearly right. A whole shift typed into a break box removes the entire shift. This page refuses the second case and explains it instead of returning zero, because zero paid hours is a number that looks like an answer, and answers that look plausible are the ones that get copied onward.

Integer arithmetic, and a calculation with nothing to send

Time measured in minutes is a whole number, and whole numbers of this size are held exactly by a browser. There is no accumulating drift here, no long tail of stray digits, and no stray fraction whose tail has to be tidied away before the number can be shown. The only fraction in the whole page is the final division into decimal hours, and that is a display step performed once at the end rather than a value that feeds anything further.

Where a calculator runs is the other half of what it can get wrong. Two clock readings look harmless until you notice what people actually check with them: whether a shift was recorded short, how many hours a second job came to, what time somebody left the building. That is employment data, and it is precisely the category a hosted timesheet product has a commercial reason to retain. Here the sums are done by a small script your browser already holds, and the figures never become part of a request.

Checking that takes about as long as reading this paragraph. Open the network panel in your browser, leave it on screen, and change any box above. Answer, working and notes all move, while that panel gains no new rows at all — a clock reading has nowhere to be posted to. Pull the plug on your connection once the page has loaded and it carries on regardless, which is less a feature than an unavoidable consequence of the far side being empty.

Frequently asked questions

Why does 7:45 plus 6:30 not come to 13.75?

Because an ordinary calculator reads the colons as decimal points and carries at ten, while the minute column carries at sixty. In minutes the sum is 465 plus 390, which is 855, and 855 minutes is 14:15. The two readings differ by forty minutes, and the error repeats on every line whenever a total is built up from figures written that way.

What is 7:30 in decimal hours, and why is it not 7.3?

It is 7.5. The digits after a decimal point are sixtieths of an hour rather than minutes, so thirty minutes is half an hour and half is written 0.5. Writing 7.3 describes seven hours and eighteen minutes, and that twelve-minute gap is where a timesheet and a payslip usually start disagreeing with each other.

Does this handle a shift that runs past midnight?

Yes. When the finish time falls earlier in the day than the start, a whole day is added back and the page tells you that it did. It also shows what the gap would be if both readings genuinely were on the same date, which comes out as a negative length of time and is normally the sign that the two boxes were filled in the wrong order.

Does it know about time zones or daylight saving?

No, and that is on purpose. Applying either one needs the date and the location, and two clock readings contain neither. A guess would return an answer that is quietly an hour out, which is worse than returning nothing. A shift that crosses a clock change really is an hour longer or shorter than the figure shown here.

Should the unpaid break be typed in minutes or in hours?

In minutes, and the box is labelled that way for a reason: typing 1 for an hour of lunch takes off a single minute, and the total still looks almost right. If the break is entered as long as the shift or longer, the page refuses rather than returning zero paid hours, because a plausible zero is exactly the kind of answer that gets copied into a payroll system.

Which ways of writing a time will the boxes accept?

24-hour readings such as 17:45, twelve-hour readings such as 5:45 pm, timetable style without a colon such as 1745, and 24:00 for the end of a day. Digits typed in full width by a Chinese or Japanese keyboard are read correctly, and so are Chinese ways of writing a clock time. Seconds are accepted only as :00, because everything here works to the minute.

Do the hours I type here leave this tab?

No, and there is no request for them to leave in. The sums run in a script your browser already has, so the answer moves while you are still typing, and an unplugged connection changes nothing once the page has loaded. What people check with a pair of clock readings is employment data, and it stays on the device you typed it into.