/* time.h: Time management. */

#ifndef _TIME_H
#define _TIME_H

#include <bits/clockid.h>
#include <bits/struct_tm.h>
#include <bits/timespec.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /* Get the current value of a system clock. */
    int clock_gettime(clockid_t id, struct timespec* ts);

    /* Get the current wall clock time. */
    time_t time(time_t* tp);

    /* Get the broken-down time representation of UNIX time, in local time. */
    struct tm* localtime(const time_t* tp);

    /* Get the broken-down time representation of UNIX time, in local time. */
    struct tm* localtime_r(const time_t* tp, struct tm* out);

    /* Get the broken-down time representation of UNIX time, in UTC time. */
    struct tm* gmtime(const time_t* tp);

    /* Get the broken-down time representation of UNIX time, in UTC time. */
    struct tm* gmtime_r(const time_t* tp, struct tm* out);

    /* Build a string representation of broken-down time. */
    char* asctime(const struct tm* tm);

    /* Build a string representation of broken-down time. */
    char* asctime_r(const struct tm* tm, char buf[26]);

    /* Build a string representation of UNIX time. */
    char* ctime(const time_t* tp);

    /* Build a string representation of UNIX time. */
    char* ctime_r(const time_t* tp, char buf[26]);

#ifdef __cplusplus
}
#endif

#endif