The CDF_EPOCH16 procedure computes or breaks down a CDF_EPOCH16 value in a CDF file. When computing an epoch, any missing value is considered to be zero.

If you supply a value for the *Epoch* argument and set the BREAKDOWN_EPOCH keyword, CDF_EPOCH16 will compute the values of the *Year*, *Month*, *Day*,* etc.* and insert the values into the named variables you supply.

If you specify the *Year* (and optionally, the *Month*, *Day*, *etc.*) and set the COMPUTE_EPOCH keyword, CDF_EPOCH16 will compute the epoch and place the value in the named variable supplied as the *Epoch* parameter.

*Note: *You *must* set either the BREAKDOWN_EPOCH or COMPUTE_EPOCH keyword.

## Examples

To compute the epoch value of September 20, 2005 at 3:05:46:02:156 am:

CDF_EPOCH16, epoch, 2005, 9, 20, 3, 5, 46, 27, 2, 156, $

/COMPUTE_EPOCH

To break down the given epoch value into standard date components:

`CDF_EPOCH16, epoch, yr, mo, dy, hr, min, sec, milli, micro, pico, $`

/BREAKDOWN_EPOCH

## Syntax

CDF_EPOCH16, *Epoch*, *Year* [, *Month*, *Day*, *Hour*, *Minute*, *Second*, *Milli*, *Micro*, *Nano*, *Pico*] [, /BREAKDOWN_EPOCH] [, /COMPUTE_EPOCH]

## Arguments

### Epoch

The Epoch value to be broken down, or a named variable that will contain the computed epoch will be placed. The Epoch value is the number of picoseconds since 01-Jan-0000 00:00:00.000.000.000.000.

*Note: *“Year zero” is a convention chosen by CDF to measure epoch values. This date is more commonly referred to as 1 BC. Remember that 1 BC was a leap year. The Epoch is defined as the number of picoseconds since 01-Jan-0000 00:00:00.000.000.000.000, as computed using the CDF library’s internal date routines. The CDF date/time calculations do not take into account the changes to the Gregorian calendar, and cannot be directly converted into Julian date/times. To convert between CDF epochs and date/times, use the CDF_EPOCH16 routine with either the BREAKDOWN_EPOCH or CONVERT_EPOCH keywords.

### Year

If COMPUTE_EPOCH is set, a four-digit integer representing the year.

If BREAKDOWN_EPOCH is set, a named variable that will contain the year.

### Month

If COMPUTE_EPOCH is set, an integer between 1 and 12 representing the month. Alternately, you can set *Month* equal to zero, in which case the *Day* argument can take on any value between 1-366.

If BREAKDOWN_EPOCH is set, a named variable that will contain the numeric month value.

### Day

If COMPUTE_EPOCH is set, an integer between 1 and 31 representing the day of the month. Alternately, if the *Month* argument is set equal to zero, *Day* can be an integer between 1-366 representing the day of the year.

If BREAKDOWN_EPOCH is set, a named variable that will contain the numeric day of the month value.

### Hour

If COMPUTE_EPOCH is set, an integer between 0 and 23 representing the hour of the day.

If BREAKDOWN_EPOCH is set, a named variable that will contain the numeric hour of the day value.

### Minute

If COMPUTE_EPOCH is set, an integer between 0 and 59 representing the minute of the hour.

If BREAKDOWN_EPOCH is set, a named variable that will contain the numeric minute of the hour value.

### Second

If COMPUTE_EPOCH is set, an integer between 0 and 59 representing the second of the minute.

If BREAKDOWN_EPOCH is set, a named variable that will contain the numeric second of the minute value.

### Milli

If COMPUTE_EPOCH is set, an integer between 0 and 999 representing the millisecond.

If BREAKDOWN_EPOCH is set, a named variable that will contain the numeric millisecond value.

### Micro

If COMPUTE_EPOCH is set, an integer between 0 and 999 representing the microsecond.

If BREAKDOWN_EPOCH is set, a named variable that will contain the numeric microsecond value.

### Nano

If COMPUTE_EPOCH is set, an integer between 0 and 999 representing the nanosecond.

If BREAKDOWN_EPOCH is set, a named variable that will contain the numeric nanosecond value.

### Pico

If COMPUTE_EPOCH is set, an integer between 0 and 999 representing the picosecond.

If BREAKDOWN_EPOCH is set, a named variable that will contain the numeric picosecond value.

## Keywords

### BREAKDOWN_EPOCH

Set this keyword to break down the value of the *Epoch* argument into its component parts, storing the resulting year, month, day, *etc*. values in the variables specified by the corresponding arguments.

### COMPUTE_EPOCH

Set this keyword to compute the value of *Epoch* from the values specified by the *Year*, *Month*, *Day*, *etc*. arguments.

## Version History

6.3 |
Introduced |