# 10.6. Calculating Elapsed Time or Intervals Between Dates

## Problem

You want to calculate an elapsed time, elapsed date, or relative time.

## Solution

For simple elapsed time, add and subtract from the Epoch milliseconds or the value returned by `getTimer( )`. For more complex conversions, create custom `Date.doMath( )` and ```Date.elapsedTime( )``` methods.

## Discussion

For simple conversions such as adding or subtracting an hour, day, or week to or from a date, simply add or subtract from the date’s Epoch milliseconds value. For this purpose, note that a second is 1,000 milliseconds, a minute is 60,000 milliseconds, an hour is 3,600,000 milliseconds, a week is 604,800,000 milliseconds, and so on. Unless you have a spectacular gift for remembering these conversion values, storing them as constants of the `Date` class is the easiest option. You can add the following constants to your Date.as file for convenience:

```// There are 1000 milliseconds in a second, 60 seconds in a minute, 60 minutes in an
// hour, 24 hours in a day, and 7 days in a week.
Date.SEC  = 1000;
Date.MIN  = Date.SEC * 60;
Date.HOUR = Date.MIN * 60;
Date.DAY  = Date.HOUR * 24;
Date.WEEK = Date.DAY * 7;```

You can use the `Date.getTime( )` method to retrieve a date’s current value in Epoch milliseconds, and you can set the new value using the `Date.setTime( )` method. The following example adds one day to a given `Date` object.

`#include "Date.as" myDate = new Date(1978, 9, 13, 3, 55, 0, 0); // Displays: Fri Oct 13 03:55:00 GMT-0700 1978 trace(myDate); ...`

Get Actionscript Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.