Funções de data usando time.h

Publicado por Danilo em 23/05/2004

[ Hits: 47.648 ]

Blog: http://www.danilocesar.com

 


Funções de data usando time.h



Um jeito alternativo de retornar o horário do sistema:

#include
#include

void main(void)
{
struct tm *local;
time_t t;
t= time(NULL);
local=localtime(&t);
}

Então nós temos o horário no ponteiro 'local', que aponta para a estrutura tm.

Mas, o que é esta estrutura tm?
A estrutura tm é definida em C da seguinte forma:

struct tm {
int tm_sec; /* Segundos, 0-59*/
int tm_min; /* Minutos, 0-59*/
int tm_hour; /*Horas 0-23 */
int tm_mday; /*dia do mês, 1-31 */
int tm_mon; /* mês a partir de janeiro, 0-11 */
int tm_year; /* anos a partir de 1900 */
int tm_wday; /* dias a partir de domingo, 0-6 */
int tm_yday; /* dias a partir de 1 de janeiro 1-365 */
int tm_isdst; /* Indicador de horário de verão */
}

Fonte: C Completo e Total

Então, para retirar o dia do sistema podemos fazer assim:

int dia;
dia=local->tm_day;

// Retornar o mês
int mes;
mes=local->tm_mon;

//retornar o ano
int ano;
ano=local->tm-year;
ano=ano+1900;

OBS: Foi necessário acrescentar 1900 ao ano, pois o sistema retorna a partir de 1900. Basicamente, no lugar de 2004, o sistema retorna 104.

Exemplo de código:

#include
#include

void main(void)
{
struct tm *local;
time_t t;
t= time(NULL);
local=localtime(&t);

dia=local->tm_mday;
mes=local->tm_mon+1;
ano=local->tm_year+1900;

printf("Data do Sistema: %d/%d/%d\n",dia,mes,ano); // Retorna a data
}
Outras dicas deste autor

Rodando o Quanta em uma única instância

Opções de optimização do VNC

Sockets em shell script

HTTP headers, HTTP por força bruta

Montando uma imagem de CD (iso)

Leitura recomendada

Lendo strings com espaço em branco usando scanf

GNOME 3 completo no Ubuntu 12.10

Programando o seu Linux para desligar automaticamente

Gerenciar pacotes em alto nível no Debian

MySQL - Backup automático de banco de dados com data

  

Comentários
[1] Comentário enviado por paulovitorbal em 17/04/2006 - 15:07h

muito bom ajudou pacas!

[2] Comentário enviado por paulopmt1 em 29/04/2008 - 14:42h

show de bola, ajudou mesmo, valeu...

[3] Comentário enviado por adrianokahn em 17/09/2009 - 11:59h

vlw pelo tutorial, me ajudou mt com um trabalho da facu...

abs!!!

[4] Comentário enviado por andrezc em 22/11/2010 - 18:36h

Bacana. Só evite usar "void main()", use "int main()".



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts