Date & Time Calculator
Calculate dates, ages, time expressions, and manage time cards with pay calculations.
Date Calculator
Advanced Settings
Unit Display
Input Units
Output Units
Time Expression Calculator
Use expressions like: 1d 2h 3m 4s + 4h 5s - 2030s
Time Card Calculator
| Day | From | To | Break | Hours | |
|---|---|---|---|---|---|
| Monday | - | ||||
| Tuesday | - | ||||
| Wednesday | - | ||||
| Thursday | - | ||||
| Friday | - | ||||
| Saturday | - | ||||
| Sunday | - |
Date & Time Calculator — Frequently Asked Questions
Most date tools split this work across four URLs: one page for days between dates, another for adding days, another for hour arithmetic, another for timesheets. This page stacks three working panels so you can move between them without reloading. The Date Calculator handles both directions of date math to the second. The Time Expression Calculator totals duration strings like 1d 2h 30m + 45m - 15s. The Time Card Calculator turns a Monday-to-Sunday shift table into hours, overtime and gross pay. All three recalculate live as you type. The date result and the time card report each have a copy button that emits plain text you can paste into a ticket, a commit message or a payroll email.
Date Calculator
Difference between two datetimes, or add/subtract years through seconds, with business-day and inclusive-count switches.
Time Expression Calculator
Chained d/h/m/s arithmetic with + and -, printed in 24-hour form by default.
Time Card Calculator
Seven weekday rows with break deduction, five overtime rules and a regular/overtime pay summary.
Both start and end inputs are datetime-local fields with step="1", so seconds are first-class rather than silently zeroed. In Difference mode the gap is decomposed year by year, then month, day, hour, minute and second, so a span reads 1y 2mo 5d 3h 12m 40s instead of an opaque day count. Include End Day adds one day before the comparison — the convention used when a rental, notice period or sprint counts both bookends. In Add/Subtract mode the direction switch applies a single sign across the whole duration, and the End Date prints in full weekday-and-time form. date-fns performs the calendar arithmetic, so month-end edges clamp the way a calendar does: 31 January plus one month lands on 28 February.
Calendar row
Whole elapsed days, weeks (days ÷ 7), months from real month boundaries, and years (days ÷ 365.25).
Time row
Total hours, minutes and seconds computed from the raw millisecond gap.
Business Days Only changes how the Days field is applied in Add/Subtract mode. Rather than adding a fixed offset, the calculator walks forward or backward one day at a time and only decrements the counter when the date is a weekday that is not a listed holiday. That is the correct model for SLA windows, notice periods and payment terms written as "within 10 business days", where a naive +10 days lands two weekends early. Four fixed US holidays always apply: New Year's Day, Independence Day, Veterans Day and Christmas Day. Floating federal dates such as Thanksgiving, Memorial Day and Labor Day are not modelled, and neither are non-US calendars, so check your jurisdiction before relying on the result contractually.
Enter From and To in whatever format you already write — 8:30AM, 17:30, 8.30 or a bare 8 all parse, and typing in either field enables that day. Break deductions take H:MM, so 0:30 removes thirty minutes. Shifts that cross midnight are detected from the negative interval and corrected by adding 1440 minutes, which makes a 10:00PM to 6:00AM shift read 8.00 hours rather than a negative number. Five overtime rules cover the common cases: none, a hard cap per day or per week, and a premium multiplier after a daily or weekly threshold. Defaults are $35 an hour, an 8-hour threshold and 1.5×. Clear All resets the week; each row also clears on its own.
Timesheet data is sensitive: it holds your hourly rate, your employer's week and often a client name in the report header. That data never leaves your machine here — the calculations run in client-side JavaScript with no network requests, no account and no upload. The card autosaves to localStorage so a refresh does not cost you the week, and clearing site data wipes it. The boundaries, stated plainly: no timezone conversion, no countdown, no recurring events, no punch rounding to 5- or 15-minute intervals, no CSV or PDF export, and no double-time tier for jurisdictions that mandate 2× beyond twelve hours in a day. Everything is dollars, gross, before tax.
No. Every calculation runs in client-side JavaScript on your device, with date-fns handling the calendar arithmetic — there are no fetch calls, no account and no upload step. The only data that persists is the time card, written to your browser's localStorage under the key timeCardData so the week survives a refresh; clearing site data removes it. The copy buttons use the browser Clipboard API locally. Hourly rate, shift times, report header and notes never leave the browser.
One switch picks the mode, and the page opens in Add/Subtract with Start Date & Time prefilled to today at 12:00:00. Difference takes a start and an end datetime and reports the gap. Add/Subtract takes the start plus a duration in years, months, days, hours, minutes and seconds, with a second switch setting the direction, and prints the resulting End Date in full — "Saturday, August 8, 2026 at 12:00:00 PM". Add/Subtract shows a result only once at least one duration field is above zero. Neither mode has a Calculate button.
Turn on Business Days Only in Advanced Settings. It changes how the Days field is applied in Add/Subtract mode: the calculator steps one day at a time, forward or backward, and counts a step only when the date is not a Saturday, not a Sunday, and not one of four fixed US holidays — New Year's Day (1 Jan), Independence Day (4 Jul), Veterans Day (11 Nov) and Christmas Day (25 Dec). Those four always apply. Years, months, hours, minutes and seconds remain plain calendar arithmetic, and floating dates such as Thanksgiving, Memorial Day and Labor Day are not modelled.
Whole numbers with lowercase d, h, m or s, chained with + and -, for example 1d 2h 3m 4s + 4h 5s - 2030s. Each term converts to seconds (1d = 86400, 1h = 3600, 1m = 60), takes the sign of the operator to its left, and the total is re-expanded into days, hours, minutes and seconds — that example returns 1 day, 5 hours, 29 minutes, 19 seconds. Uppercase units, weeks and months are ignored, and decimals are misread: 1.5h parses as 5h, so type 90m instead.
Date arithmetic runs in your browser's local timezone using calendar-based addition, so adding one day across a DST transition keeps the same wall-clock time. The Time totals come from the elapsed millisecond gap, so on a spring-forward day a one-day jump reports 23 hours while the Calendar row still reads 1 day; on a fall-back day it reports 25 hours. That divergence is correct behaviour, not a rounding bug — it is the real gap between civil days and elapsed time.
They are derived differently. Calendar shows whole elapsed days, with partial days truncated rather than rounded up, then weeks as days ÷ 7, months as (years × 12) + months taken from the broken-down duration, and years as days ÷ 365.25 — the Julian year length that averages the leap-year cycle. Time shows hours, minutes and seconds computed straight from the millisecond gap. A 90-day span therefore reads 90 days, 12.9 weeks and 0.2 years, and the month figure follows real calendar month boundaries instead of assuming a fixed 30-day month.
The From, To and Break fields are free text run through a tolerant parser. Accepted forms include 8:30AM, 8:30 PM, 17:30, 8.30 with a dot separator, and a bare 8 meaning 08:00. AM/PM is case-insensitive; 12AM maps to 00:00 and 12PM stays 12:00. Break deductions use the same parser, so 0:30 is thirty minutes and 1:15 is seventy-five. Typing in From or To enables that day automatically. Every value is normalized to minutes past midnight before subtraction, and hours are reported to two decimal places.
Yes. Hours worked are computed as To minus From in minutes past midnight. When that is negative — 10:00PM to 6:00AM gives 360 − 1320 = −960 — the calculator adds 1440 minutes, one full day, and returns 480 minutes, or 8.00 hours. The break deduction is subtracted afterwards and the result is floored at zero, so an oversized break can reduce a shift to 0.00 but never below it. A single row cannot represent a shift longer than 24 hours.
No Overtime sums every enabled day at the base rate. Max hours per day caps each day at the threshold and Max hours per week caps the weekly total — in both, the excess is discarded, so Total Hours shows the capped figure rather than hours actually worked. Overtime after X hours/day pays the threshold at base rate and the remainder at base × multiplier, computed per day; Overtime after X hours/week applies that split to the weekly total. The multiplier field appears only for the two "after" rules. Defaults are an 8-hour threshold and a 1.5 multiplier, the FLSA's time-and-a-half.
Work 8 hours Monday through Thursday and 13 hours on Friday, then pick Overtime after X hours/week with a threshold of 40 and the prefilled base rate of 35 and 1.5 multiplier. The 45 total hours split into 40 regular at $35 = $1,400 and 5 overtime at $52.50 = $262.50, giving $1,662.50 gross. Amounts are dollars only — there is no currency selector, no tax handling, and no double-time tier for states such as California that require 2× beyond 12 hours in a day.
No. There is no timezone selector and no UTC conversion — every datetime you enter is interpreted in the timezone your browser reports, and results render in that same zone. To compare a 09:00 London start against a 09:00 New York start, convert the values before entering them. There is also no live countdown, no recurring-event logic and no calendar export. The page is date arithmetic, duration math and timesheet totals only, so reach for a dedicated timezone tool when the zones differ.
The whole card — seven day rows, base rate, overtime rule, threshold, multiplier, report header and notes — is written to localStorage on every change under the key timeCardData and restored on load. Clear All resets the rows and each row has its own reset button. Output is clipboard only: the copy button builds a plain-text report listing each enabled day as "Monday: 8:30AM - 5:00PM (Break: 0:30) = 8.00h", then total, regular and overtime hours with the pay lines. There is no CSV, PDF or print export.
Online Calculators
Age calculator, percentage calculator, loan EMI, calorie counter, and more.
Customer Reviews
0 out of 5 stars
Based on 0 reviews
Review data
5 star reviews
- 0%
4 star reviews
- 0%
3 star reviews
- 0%
2 star reviews
- 0%
1 star reviews
- 0%
Share your thoughts
If you've used this tool, share your thoughts with other users
Recent reviews
Latest Articles
Tips, guides, and insights from our blog
How to Create Strong Passwords in 2026: A Simple Guide
Practical tips for creating passwords that actually keep your accounts safe. Covers password security, managers, and two-factor authentication — no fluff.
What is a UUID? Complete Guide to Unique Identifiers
A straightforward look at UUIDs — what they are, how they work, and how to actually use them in your apps.
What is Lorem Ipsum? History, Meaning, and Modern Uses
The 2000-year story of Lorem Ipsum — from Cicero's Latin philosophy to modern web design. Plus why designers still use it and how to generate it yourself.
URL Slugs: The Complete SEO Guide for 2026
What URL slugs are, why they matter for search rankings, and how to get them right. Covers best practices and common mistakes to watch out for.