Date Calculator
Count the days between two dates, add or subtract days, months or business days, or work out an exact age. Everything runs in your browser.
Weekend and holidays (Saturday and Sunday, no holidays)
How to use the date calculator
- Days between dates: pick a start date and an end date. You get the number of days, the same period in years, months and days, in weeks, and the number of business days. Tick Include the end date when both the first and the last day count.
- Add or subtract: pick a date, choose Add or Subtract and type the years, months, weeks and days. Use it for "what is the date 90 days from today", a deadline, a notice period or a due date. Tick business days to skip weekends and holidays.
- Age: enter a date of birth. You get the exact age in years, months and days, the age in days and weeks, the weekday of birth and the next birthday. Change "Age on this date" to see the age on another day.
- Open Weekend and holidays to choose your weekend days and paste your public holidays. Click Copy to copy the result, or Copy link to share the same calculation.
How the days are counted
The calculator subtracts the two dates, so the start day is counted and the end day is not. This is the usual way to count a difference: Excel's =B1-A1, JavaScript, Python and most date tools give the same number. If you count both days, as with a holiday from Monday to Friday, add 1 day with Include the end date.
| From | To | Days | With the end date |
|---|---|---|---|
| 1 March | 3 March | 2 | 3 |
| Monday | Friday of the same week | 4 | 5 (a working week) |
| 1 January 2026 | 1 January 2027 | 365 | 366 |
| 1 January 2028 | 1 January 2029 | 366 (leap year) | 367 |
| Today | Today | 0 | 1 |
Years, months and days are counted the way people say an age: first the full years, then the full months, then the days left over. Hours, minutes and seconds use 24 hours per day; a summer-time change can make one real day 23 or 25 hours long, which this calculator does not apply.
Adding months: the month-end rule
Months have 28 to 31 days, so "one month later" is not always the same day number. When the day does not exist in the new month, the calculator uses the last day of that month. Excel's EDATE, Java's plusMonths, Python's dateutil.relativedelta and most banks use the same rule.
| Start | Add | Result |
|---|---|---|
| 15 January 2026 | 1 month | 15 February 2026 |
| 31 January 2026 | 1 month | 28 February 2026 |
| 31 January 2028 | 1 month | 29 February 2028 (leap year) |
| 31 March 2026 | 1 month | 30 April 2026 |
| 29 February 2028 | 1 year | 28 February 2029 |
Years and months are added first, then weeks and days. So 31 January + 1 month + 1 day is 1 March, not 3 March.
Business days and working days
Business days are the days that are not on the weekend and not a holiday. Choose your weekend: Saturday and Sunday in most countries, Friday and Saturday in many countries of the Middle East, or only Sunday. Then paste the public holidays of your country under Weekend and holidays. The list is kept in this browser for your next visit.
When you add business days, the calculator moves one working day at a time and skips weekends and holidays, like Excel's WORKDAY. So Friday + 1 business day is Monday. When you count business days between two dates, it uses the same days as the day count: the start day yes, the end day only with Include the end date. Excel's NETWORKDAYS always counts both days.
Leap years and month lengths
A common year has 365 days and a leap year 366, with 29 February as the extra day. In the Gregorian calendar a year is a leap year when it can be divided by 4, except years that can be divided by 100 but not by 400. So 2000 and 2024 were leap years, and 1900 and 2100 are not. The next leap years are 2028, 2032 and 2036. Over 400 years the average year is 365.2425 days long.
| Days | Months |
|---|---|
| 31 | January, March, May, July, August, October, December |
| 30 | April, June, September, November |
| 28 or 29 | February (29 in a leap year) |
The calculator uses the Gregorian calendar for all years, also before 1582 when many countries still used the Julian calendar. Dates from year 1 to 9999 work.
Date formulas in Excel, Google Sheets and code
| Task | Excel / Google Sheets | Code |
|---|---|---|
| Days between dates | =B1-A1 or =DAYS(B1,A1) | Python: (d2 - d1).days |
| Years, months, days | =DATEDIF(A1,B1,"Y"), "YM", "MD" | Java: Period.between(d1, d2) |
| Business days between | =NETWORKDAYS(A1,B1,holidays) | NumPy: np.busday_count(d1, d2) |
| Add days | =A1+90 | Python: d + timedelta(days=90) |
| Add months | =EDATE(A1,6) | Java: d.plusMonths(6) |
| Add business days | =WORKDAY(A1,10,holidays) | NumPy: np.busday_offset(d, 10, roll='forward') |
| Age in years | =DATEDIF(A1,TODAY(),"Y") | SQL (MySQL): TIMESTAMPDIFF(YEAR, birth, CURDATE()) |
In JavaScript, subtract two dates made with Date.UTC(...) and divide by 86400000. Local dates can be off by one hour on a summer-time change, which then rounds to the wrong day.
Frequently asked questions
How do I count the days between two dates?
Enter the start date and the end date above. The calculator subtracts the two dates and shows the number of days, plus the same period in years, months and days, in weeks, and in business days. By hand, you can count the days left in the start month, add the full months in between, and add the days of the end month.
Does the result include the end date?
Not by default. From 1 March to 3 March is 2 days, the same way most calculators, Excel (=B1-A1) and programming languages count. Tick "Include the end date" when you count both the first and the last day, for example the days of a trip or a hotel stay with both days, or a period of leave. That adds 1 day.
How do I calculate business days between two dates?
The result always shows the business days, which are the days that are not on the weekend. Choose your weekend (Saturday and Sunday, Friday and Saturday, or only Sunday) and add public holidays under "Holidays and days off", one date per line. In Excel, =NETWORKDAYS(start, end, holidays) does the same, but it always counts both the start and the end day.
What happens when I add 1 month to 31 January?
There is no 31 February, so the calculator uses the last day of February: 28 February, or 29 February in a leap year. This is the same rule that Excel's EDATE, Java, Python's dateutil and most banks use. Adding 1 month to 15 January always gives 15 February.
How is my exact age calculated?
The calculator counts the full years since your birth date, then the full months after your last birthday, then the days that are left. It also shows your age in total months, weeks and days, the day of the week you were born, and how many days are left until your next birthday.
How are leap years and 29 February birthdays handled?
Leap years are counted exactly, using the Gregorian calendar rule: a year divisible by 4 is a leap year, except years divisible by 100 that are not divisible by 400 (2000 was a leap year, 1900 was not). If you were born on 29 February, the calculator treats 28 February as your birthday in common years. Some countries use 1 March for legal age, so check the local rule when it matters.
Are my dates sent to a server?
No. All calculations run in your browser with JavaScript. Only your settings, such as the weekend days and your holiday list, are kept in this browser for your next visit. Dates are never uploaded.