SUMMARY
This step-by-step article describes how to use the built-in
date and time functions in Microsoft Excel to perform complex date and time
calculations.
Excel stores all dates as integers and all times as
decimal fractions. With this system, Excel can add, subtract, or compare dates
and times just like any other numbers, and all dates are manipulated by using
this system.
In this system, the serial number 1 represents 1/1/1900
12:00:00 a.m. Times are stored as decimal numbers between .0 and .99999, where
.0 is 00:00:00 and .99999 is 23:59:59. The date integers and time decimal
fractions can be combined to create numbers that have a decimal and an integer
portion. For example, the number 32331.06 represents the date and time 7/7/1988
1:26:24 a.m.
To help you perform complex date and time calculations,
Excel includes many built-in date and time functions.
back to the top
The TODAY() Function and the NOW() Function
The
TODAY function returns the serial number of today's date based on your
system clock and does not include the time. The
NOW function returns the serial number of today's date and includes
the time.
back to the top
How Dates Are Sorted Based on Serial Number
In Excel, dates are sorted based on the serial number of the
date, instead of on the displayed number. Therefore, when you sort dates in
Excel, you may not receive the results you expect.
For example, if
you sort a series of dates that are displayed in the mmmm date format (so that
only the month is displayed), the months are
not sorted alphabetically. Instead, the dates are sorted based on
their underlying date serial number.
back to the top
How Dates Are Compared Based on Serial Number
Because serial numbers are also used in date and time
comparisons, actual results may be different than what you expect (based on the
displayed values).
For example, when you use the
NOW function to compare a date with the current date, as in the
formula
=IF(NOW()=DATEVALUE("10/1/92"),TRUE,FALSE)
the formula returns FALSE, even if the current date is 10/1/92;
it returns TRUE only when the date is 10/1/92 12:00:00 a.m. If you are
comparing two dates in a formula, and you do not have to have the time included
in the result, you can work around this behavior by using the
TODAY function instead:
=IF(TODAY()=DATEVALUE("10/1/92"),TRUE,FALSE)
back to the top
How to Work with Date Formulas
How to Find the Number of Days Between Today and a Future Date
To find the number of days between now and a date sometime in the
future, use the following formula
="mm/dd/yy"-NOW()
where
"mm/dd/yy" is the future date.
Use the General format to format the cell that contains the
formula.
back to the top
How to Find the Number of Days, Months, and Years Between Two Dates
To calculate the number of days, months, and years between two
dates, where the start and end dates are entered in cells A1 and A2
respectively, follow these steps:
- Create a new workbook.

- In the New Workbook pane, click Blank workbook.

- Type the following data in the workbook:
A1: 03/25/94
A2: 05/01/98

- Type the following formula in cell D1:
=YEAR(A2)-YEAR(A1)-IF(OR(MONTH(A2)<MONTH(A1),AND(MONTH(A2)=MONTH(A1),
DAY(A2)<DAY(A1))),1,0)&" years, "&MONTH(A2)-MONTH(A1)+IF(AND(MONTH(A2)
<=MONTH(A1),DAY(A2)<DAY(A1)),11,IF(AND(MONTH(A2)<MONTH(A1),DAY(A2)
>=DAY(A1)),12,IF(AND(MONTH(A2)>MONTH(A1),DAY(A2)<DAY(A1)),-1)))&" months,
"&A2-DATE(YEAR(A2),MONTH(A2)-IF(DAY(A2)<DAY(A1),1,0),DAY(A1))&" days"

Note If you copy and paste this formula, make sure that there are no
line breaks, or the formula will not work.
If you type the formula correctly, cell D1 displays:
4 years, 1 months, 6 days
Additional Formula Breakdown for Days, Months, and Years This formula can also be broken down into individual
segments of days, months, and years as follows.
Note If you copy and paste these formulas, make sure that there are
no line breaks or the formulas will not work.
Time segment Formula
------------------------------------------------------------------------
The remaining number of =A2-DATE(YEAR(A2),MONTH(A2)-
days between two dates, IF(DAY(A2)<DAY(A1),1,0),DAY(A1))&"days"
ignoring years and months
The remaining number of =MONTH(A2)- MONTH(A1)+IF(AND(MONTH(A2)
months between two dates, <=MONTH(A1), DAY(A2)<DAY(A1)),11,
ignoring years and days IF(AND(MONTH(A2)<MONTH(A1),DAY(A2)>=
DAY(A1)),12,IF(AND(MONTH(A2)>MONTH(A1),
DAY(A2)<DAY(A1)),-1)))&" months"
The number of whole years =YEAR(A2)-YEAR(A1)-IF(OR(MONTH(A2)<
between two dates MONTH(A1),AND(MONTH(A2)=MONTH(A1),
DAY(A2)<DAY(A1))),1,0)&" years"
Note In the earlier formulas, &" days", &" months", and
&" years" are optional. These allow you to distinguish the results as days,
months, and years.
back to the top
How to Find the Number of Weekdays Between Two Dates
To find the number of weekdays between two dates, where the start
and end dates are typed in cells A1 and A2 respectively, follow these steps:
- Create a new workbook.

- In the New Workbook pane, click Blank workbook.

- Type the following data in the workbook:
A1: 03/25/94
A2: 05/01/98

- In cell D1, type the following formula:
=NETWORKDAYS(A1,A2)

"1071" appears as the result in cell D1.

Note If you see
#NAME as the result, click
Add-Ins on the
Tools menu. Click to select the
Analysis ToolPak check box, and then click
Yes if you are prompted as to whether you want to install
it.
back to the top
How to Increase Dates Incrementally
To increase a date by a number of years, months, or days, use the
following formula, where
reference is either the date value or cell reference that contains the
date, and
value1,
value2, and
value3 are the increments by which you want to increase the year, month,
and day, respectively.
=DATE(YEAR(reference)+value1,MONTH(reference)+value2,DAY(reference)+value3)
For example, to increase a date by one month,
the formula is:
=DATE(YEAR(DATEVALUE("6/20/96")),MONTH(DATEVALUE("6/20/96"))+1,
DAY(DATEVALUE("6/20/96")))
back to the top
How to Work with Time Formulas
How to Calculate Elapsed Time
When you subtract the contents of one cell from another to find
the amount of time elapsed between them, the result is a serial number that
represents the elapsed hours, minutes, and seconds. To make this number easier
to read, use the h:mm time format in the cell that contains the
result.
In the following example, if cells C2 and D2 contain the
formula
=B2-A2, and cell C2 is formatted in the General format, the cell
displays a decimal number (in this case, 0.53125, the serial number
representation of 12 hours and 45 minutes).
A1: Start Time B1: End Time C1: Difference D1: Difference
(General) (h:mm)
A2: 6:30 AM B2: 7:15 PM C2: 0.53125 D2: 12:45

If midnight falls between your start time and end time, you must
account for the 24-hour time difference. You can do this by adding the number
1, which represents one 24-hour period. For example, you might set up the
following table, which allows for time spans beyond midnight.
A1: Start Time B1: End Time C1: Difference D1: Difference
(General) (h:mm)
A2: 7:45 PM B2: 10:30 AM C2: 0.61458333<?xm-insertion_mark_start author="v-jemmyc" time="20060531T171627+0800"?>3<?xm-insertion_mark_end?> D2: 14:45
To set up this table, type the following formula in cells C2 and
D2:
=B2-A2+IF(A2>B2,1)
back to the top
How to Accumulate Hours and Minutes Greater Than 24 Hours
If you want to correctly display a time greater than 24 hours,
you can use the 37:30:55 built-in format. If you want to use a custom format
instead, you must enclose the hours parameter of the format in brackets, for
example:
[h]:mm
back to the top
How to Convert a Date to Its Decimal Number Equivalent
To convert a serialized date (h:mm:ss) to a decimal number
(0.00), you must convert the serial number to a decimal by converting to a
24-hour base. You do this by multiplying the time by 24 as follows
=Time*24
where
Time is the number that you want
to convert from a time format to a decimal number; this number can be a cell
reference or a string of numbers in the
TIMEVALUE function.
For example, if cell A1 contains a time of
"4:30" to represent four hours and 30 minutes, the formula is:
=A1*24
The result is 4.5.
If the cell contains both a date and
a time, use the following formula:
=(Time-INT(Time))*24
For example, if cell A1 reads "6/20/96 4:30 AM", the formula is:
=(A1-INT(A1))*24
The result again is 4.5.
back to the top
How to Convert a Decimal Number to Its Date Equivalent
To convert a decimal number (0.00) to its serial date equivalent
(h:mm:ss), you must convert the serial number to a decimal by converting to a
24-hour base. You do this by dividing the time by 24 as follows
=Time/24
where
Time is the number that you want
to convert from a decimal number to a date serial number and can be a cell
reference or a real number. For example, if you have a value of 4.5 to
represent four hours and 30 minutes in cell A1, the formula is:
=A1/24
The result is 4:30.
back to the top
How to Transfer Files Between Microsoft Excel for Mac and Excel for Windows
By default, Excel for Mac uses the 1904 date system and
Excel for Windows uses the 1900 date system. This means that when you type the
serial number 1 in Excel for Mac and format it as a date, Excel
displays it as
1/2/1904 12:00 a.m. Excel for Windows displays the serial number 1 as
1/1/1900 12:00 a.m. If you transfer files from Excel for Mac to
Excel for Windows, this difference in the date systems should not cause a
problem, because the date system is stored in each file. However, if you copy
and paste between files with different date systems that originated on
different platforms, dates may be displayed four years and one day away from
their correct date.
To change to the 1904 date system in Excel for
Windows, follow these steps:
- On the Tools menu, click Options.

- Click the Calculation tab, and then click to select the 1904 date system check
box.

To change to the 1904 date system in Excel for Mac,
follow these steps:
- On the Excel menu, click Preferences.

- Click the Calculation tab, and then click to clear the 1904 date system check
box.

back to the top