# 40.10 Time Calculations

These functions perform calendrical computations using time values (see Time of Day). As with any time value, a value of `nil` for any of their time-value arguments stands for the current system time, and a single number stands for the number of seconds since the epoch.

### `function`time-less-pt1 t2​

This returns `t` if time value `t1` is less than time value `t2`. The result is `nil` if either argument is a NaN.

### `function`time-equal-pt1 t2​

This returns `t` if `t1` and `t2` are equal time values. The result is `nil` if either argument is a NaN.

### `function`time-subtractt1 t2​

This returns the time difference `t1` - `t2` between two time values, as a Lisp time value. The result is exact and its clock resolution is no worse than the worse of its two arguments’ resolutions. The result is floating-point only if it is infinite or a NaN. If you need the difference in units of elapsed seconds, you can convert it with `time-convert` or `float-time`. See Time Conversion.

### `function`time-addt1 t2​

This returns the sum of two time values, using the same conversion rules as `time-subtract`. One argument should represent a time difference rather than a point in time, as a time value that is often just a single number of elapsed seconds. Here is how to add a number of seconds to a time value:

``(time-add time seconds)``

### `function`time-to-daystime-value​

This function returns the number of days between the beginning of year 1 and `time-value`, assuming the default time zone. The operating system limits the range of time and zone values.

### `function`time-to-day-in-yeartime-value​

This returns the day number within the year corresponding to `time-value`, assuming the default time zone. The operating system limits the range of time and zone values.

### `function`date-leap-year-pyear​

This function returns `t` if `year` is a leap year.

### `function`date-days-in-monthyear month​

Return the number of days in `month` in `year`. For instance, February 2020 has 29 days.

### `function`date-ordinal-to-timeyear ordinal​

Return the date of `ordinal` in `year` as a decoded time structure. For instance, the 120th day in 2004 is April 29th.