CTIME(3)

NOM
ctime, asctime, gmtime, localtime, mktime - Conversions de dates et heures binaires en ASCII.

SYNOPSIS
#include <time.h>

char *asctime (const struct tm *timeptr);

char *ctime (const time_t *timep);

struct tm *gmtime (const time_t *timep);

struct tm *localtime (const time_t *timep);

time_t mktime (struct tm *timeptr);

extern char *tzname[2];
long int timezone;
extern int daylight;

DESCRIPTION
Les fonctions ctime(), gmtime() et localtime() prennent toutes un argument de type time_t qui represente une date. Si l'on interprete cet argument comme une valeur absolue, il s'agit du nombre de secondes ecoulees depuis le 1er Janvier 1970 a 00h00m00s en Temps Universel (TU).

Les fonctions asctime() et mktime() utilisent toutes deux un argument de type struct tm, c'est a dire une representation binaire divisee en annee, mois, jour, heure... Cette structure tm est definie dans <time.h> ainsi :

    struct tm
    {
    	int	tm_sec;			/* secondes           */
    	int	tm_min;			/* minutes            */
    	int	tm_hour;		/* heures             */
    	int	tm_mday;		/* quantieme du mois  */
    	int	tm_mon;			/* mois               */
    	int	tm_year;		/* annee              */
    	int	tm_wday;		/* jour de la semaine */
    	int	tm_yday;		/* jour de l'annee    */
    	int	tm_isdst;		/* decallage horaire  */
    };

Les membres de la structur tm sont :

tm_sec
    Le nombre de secondes ecoulees depuis le dernier changement de minute. Normalement dans l'intervalle 0 a 59, ce membre peut aller jusqu'a 61 durant les secondes de rattrapage periodique.

tm_min
    Le nombre de minutes ecoulees depuis le dernier changement d'heure, dans l'intervalle 0 a 59.

tm_hour
    Le nombre d'heures ecoulees depuis Minuit, dans l'intervalle 0 a 23.

tm_mday
    Le quantieme du mois, dans l'intervalle 1 a 31.

tm_mon
    Le nombre de mois ecoules depuis le debut de l'annee, dans l'intervalle 0 a 11.

tm_year
    Le nombre d'annees ecoulees depuis 1900.

tm_wday
    Le nombre de jours ecoules depuis Dimanche, dans l'intervalle 0 a 6.

tm_yday
    Le nombre de jours ecoules depuis le 1er Janvier, dans l'intervalle 0 a 365 (0 a 364 si l'annee n'est pas bissextile).

tm_isdst
    Un drapeau indiquant si le decallage d'heure hiver/ete est en cours au moment de l'appel. La valeur retournee est positive si le decallage est en fonction, nulle s'il ne l'est pas, et negative si l'information n'est pas disponible.

La fonction ctime() convertit la date timep en une chaine de caracteres de le forme

    "Wed Jun 30 21:49:08 1993\n"

L'internationalisation de la date est possible en utilisant la fonction setlocale(3) et strftime(3). Les abreviations pour les jours de la semaine sont `Sun', `Mon', `Tue', `Wed', `Thu', `Fri', et `Sat'. les abreviations pour les mois sont `Jan', `Feb', `Mar', `Apr', `May', `Jun', `Jul', `Aug', `Sep', `Oct', `Nov', et `Dec'. La valeur renvoyee pointe sur une chaine statique qui sera ecrasee a chaque appel de l'une des fonctions ci-dessus. La fonction renseigne egalement la variable externe tzname avec les informations concernant le fuseau horaire.

la fonction gmtime() convertit la date timep en une representation struct tm exprimee en Temps Universel.

La fonction localtime() convertit la date timep en une representation struct tm exprimee en fonction du fuseau horaire de l'utilisateur. Cette fonction renseignent les variables externes tzname avec les informations concernant le fuseau horaire, timezone avec la difference (en secondes) entre Temps Universel et Temps Local, et daylight avec une valeur non-nulle si le decallage horaire saisonnier s'applique.

La fonction asctime() convertit la date timeptr exprimee sous forme struct tm en une chaine de caracteres du meme format que ctime(). La valeur renvoyee pointe sur une chaine statique qui sera ecrasee a chaque appel de l'une des fonctions ci-dessus.

La fonction mktime() convertit la date timeptr exprimee sous forme struct tm en une date locale sous forme time_t. La fonction ignore les valeurs transmises des membres tm_wday et tm_yday de la structure, et les recalcule en utilisant les autres membres. L'appel de mktime() renseigne egalement la variable externe tzname avec les informations concernant le fuseau horaire. Si la structure transmise ne peut pas etre convertie, mktime() renvoie la valeur (time_t)(-1) et ne modifie pas les membres tm_wday et tm_yday.

CONFORME A
SVID 3, POSIX, BSD 4.3, ISO 9899

VOIR AUSSI
date(1), gettimeofday(2), time(2), tzset(3), difftime(3), strftime(3), newctime(3).