CTIME(3)

NOME
asctime, ctime, gmtime, localtime, mktime - convertem datas e horas binárias para ASCII

SINOPSE
#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;

DESCRIÇÃO
As funções ctime(), gmtime() e localtime() recebem um argumento tipo time_t, que representa um ponto no tempo. Quando interpretado como um valor absoluto, representa o número de segundos desde as 00:00:00 de 1 de janeiro de 1970 (Hora Universal Sincronizada - UTC).

As funções asctime() e mktime() recebem um argumento que representa um instante definido em termos de ano, mês, dia, etc. Este argumento é uma struct tm (definida em <time.h>) que contém:

    struct tm
    {
    	int	tm_sec;			/* segundos */
    	int	tm_min;			/* minuto */
    	int	tm_hour;		/* horas */
    	int	tm_mday;		/* dia do mês */
    	int	tm_mon;			/* mês */
    	int	tm_year;		/* ano */
    	int	tm_wday;		/* dia da semana */
    	int	tm_yday;		/* dia do ano */
    	int	tm_isdst;		/* horário de verão */
    };

Os componentes do struct tm são

tm_sec
    Segundos após o minuto. Normalmente de 0 a 59, mas podendo chegar a 61 no caso de um segundo ser acrescentado.

tm_min
    Minutos depois da hora. De 0 a 59.

tm_hour
    Horas após a meia noite. De 0 a 23.

tm_mday
    Dia do mês. De 1 a 31.

tm_mon
    Meses desde janeiro. De 0 a 11.

tm_year
    Anos desde 1900.

tm_wday
    Dias de semana desde domingo. De 0 a 6.

tm_yday
    Dias desde 1 de janeiro. De 0 a 365.

tm_isdst
    Um flag que indica se se está em vigência do horário de verão. É um valor positivo se estiver, zero se não estiver e negativo se esta informação não estiver disponível.

A função ctime() converte timep numa string no formato

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

As abreviaturas dos dias da semana são `Sun', `Mon', `Tue', `Wed', `Thu', `Fri' e `Sat',e as dos meses são `Jan', `Feb', `Mar', `Apr', `May', `Jun', `Jul', `Aug', `Sep', `Oct', `Nov' e `Dec'. O valor retornado aponta para uma string alocada estaticamente, e que pode ser sobrescrita por chamadas subseqüentes a quaisquer das funções de data e hora. A função também coloca informação sobre o fuso horário atual na variável externa tzname.

A função gmtime() converte o instante timep para a representação detalhada do UTC.

A função localtime() converte o instante timep para a representação detalhada UTC, mas corrigida para o fuso horário do usuário. Esta função coloca informações de fuso horário na variável externa tzname, a diferença entre a UTC e a hora local em segundos em timezone e um valor diferente de zero em daylight se o horário de verão estiver em vigor.

A função asctime() converte o valor de tempo timeptr para uma string com o mesmo formato que ctime(). O valor retornado aponta para uma string alocada estaticamente que pode ser sobrescrita por chamadas subseqüentes a quaisquer das funções de data e tempo.

A função mktime() converte uma struct de tempo detalhada, definida como hora local, para um ponto no tempo. Esta função ignora tm_wday e tm_yday, recalculando-os a partir dos outros dados no struct. Os membros serão recalculados se excederem seus valores máximos (ex. 40 de outubro mudará para 9 de novembro). Uma chamada a mktime() também colocará informações sobre o fuso horário em tzname. Se o tempo especificado não puder ser representado no calendário (em segundos desde a Época), mktime() retornará (time_t)(-1) sem alterar os componentes tm_wday e tm_yday do struct.

DE ACORDO COM
SVID 3, POSIX, BSD 4.3, ISO 9899

VER TAMBÉM
date(1), gettimeofday(2), time(2), tzset(3), difftime(3), strftime(3), newctime(3)

TRADUZIDO POR LDP-BR em 21/08/2000.
Paulo César Mendes <drpc@ism.com.br> (tradução) xxxxxxxxxxxxxxxxxxxxxxxxx <xxx@xxxxxx.xxx.xx> (revisão)