Existe apenas uma função para que se possa obter a data e a hora. É a função t= time('\0'); local=localtime(&t);. Esta funão devolve data e hora.
Para se obter os dados separadamente, existem os seguintes métodos:
Arquivo: Exemplo.c |
#include <stdio.h> #include <time.h> #include <string.h> int main(int argc, char **argv){ struct tm *local; time_t t; t= time('\0'); local=localtime(&t); // ------------------- int dia=local->tm_mday; int mes=local->tm_mon; int ano=local->tm_year+1900; int dia_da_semana=local->tm_wday; // ------------------- char semana[][30] = {"Domingo", "Segunda", "Terça","Quarta", "Quinta", "Sexta", "Sabado"}; char semana_atual[30]; strcpy(semana_atual, semana[dia_da_semana]); // ------------------- char mes2[][30] = {"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Desembro"}; char mes_atual[30]; strcpy(mes_atual, mes2[mes]); // ------------------- printf("%s, %d de %s de %d\n",semana_atual,dia,mes_atual,ano); // Retorna a data // ------------------- int horas=local->tm_hour; int minutos=local->tm_min; int segundos=local->tm_sec; printf("São: %d horas, %d minutos, %d segundos.\n",horas,minutos,segundos); // Retorna a hora return 0; } |
exemplo 4: alterando a data
Arquivo: Exemplo.c |
#include <stdio.h> #include <string.h> #include <time.h> int main(int argc, char **argv){ // ------------------- int dia=4; int mes=11; int ano=2011; // ------------------- time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime ( &rawtime ); timeinfo->tm_year = ano - 1900; timeinfo->tm_mon = mes - 1; timeinfo->tm_mday = dia; mktime ( timeinfo ); // ------------------- char semana[][30] = { "Domingo", "Segunda", "Terça","Quarta", "Quinta", "Sexta", "Sabado"}; char semana_atual[30]; strcpy(semana_atual, semana[timeinfo->tm_wday]); // ------------------- char mes2[][30] = {"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Desembro"}; char mes_atual[30]; strcpy(mes_atual, mes2[mes-1]); // ------------------- printf("%s, %d de %s de %d\n",semana_atual,dia,mes_atual,ano); // Retorna a data return 0; } |