Skip to content

datetime.3

Manvendra Bhangui edited this page Feb 25, 2024 · 4 revisions

NAME

datetime - convert between TAI labels and seconds

SYNTAX

#include <datetime.h>

void datetime_tai(&dt,t);

datetime_sec datetime_untai(&dt);

struct datetime dt;
datetime_sec t;

DESCRIPTION

International Atomic Time, TAI, is the fundamental unit for time measurements. TAI has one label for every second of real time, without complications such as leap seconds.

A struct datetime variable, such as dt, stores a TAI label. dt*.year*** is the year number minus 1900; dt*.mon*** is the month number, from 0 (January) through 11 (December); dt*.mday*** is the day of the month, from 1 through 31; dt*.hour*** is the hour, from 0 through 23; dt*.min*** is the minute, from 0 through 59; dt*.sec*** is the second, from 0 through 59; dt*.wday*** is the day of the week, from 0 (Sunday) through 6 (Saturday); dt*.yday*** is the day of the year, from 0 through 365.

The datetime library supports more convenient TAI manipulation with the datetime_sec type. A datetime_sec value, such as t, is an integer referring to the tth second after the beginning of 1970 TAI. The first second of 1970 TAI was 0; the next second was 1; the last second of 1969 TAI was -1. The difference between two datetime_sec values is a number of real-time seconds.

datetime_tai converts a datetime_sec to a TAI label.

datetime_untai reads a TAI label (specifically dt*.year***, dt*.mon***, dt*.mday***, dt*.hour***, dt*.min***, and dt*.sec***) and returns a datetime_sec.

SEE ALSO

now(3)

Clone this wiki locally