Função em C, retorna a data do sistema já formatada
Publicado por Paulo Marcos Trentin 13/06/2008
[ Hits: 36.957 ]
Homepage: http://www.paulotrentin.com.br
Esses dias, num programa com banco de dados, precisei registrar a hora e data exata que um usuário executou determinada tarefa e para isso eu queria que a hora ficasse no formato hh:mm:ss e a data dd/MM/yyyy.
Foi com esse script que resolvi meu problema.
Espero que seja útil.
/* Script feito por Paulo Marcos Trentin paulo@paulotrentin.com.br http://www.paulotrentin.com.br Esse script pega a hora e a data do sistema e as formata para exibir no respectivo formato hh:mm:ss e dd/MM/yyyy Sou novato em programacao, especialmente na linguagem C, mais foi dessa a forma que consegui obter a data e a hora do sistema, formatada, para inseri-las no banco de dados mysql. Dicas e criticas sao bem vindas. */ #include <stdio.h> #include <time.h> // funcao format. Ela recebe um valor do tipo inteiro e caso este seja menor que 10 // ela inclui o 0 na frente. ex.: 1 antes 01 depois // for fim retorna um ponteiro para uma variavel do tipo char com o valor da conversao char *format(int number){ char *retorno, ret[100]; int i; if (number < 10){ sprintf(ret,"0%d",number); retorno = ret; return retorno; } else{ sprintf(ret,"%d",number); retorno = ret; return retorno; } } // funcao que retorna data char *data(void){ int dia,mes,ano; char var1[100], var2[100], var3[100], var4[100], *dataPtr; 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; // por algum motivo precisa converter os valores retornados pelos ponteiros // da funcao em variaveis do tipo char sprintf(var1,"%s",format(dia)); sprintf(var2,"%s",format(mes)); sprintf(var3,"%s",format(ano)); // cria a variavel de retorno dos dados e cria um ponteiro para essa variavel sprintf(var4,"%s/%s/%s",var1,var2,var3); // retorna data no formato dd:MM:yyyy com um ponteiro dataPtr = var4; return dataPtr; } // funcao que retorna hora char *hora(void){ int hora,minuto,segundo; char var1[100], var2[100], var3[100], var5[100], *retorno; struct tm *local; time_t t; t = time(NULL); local = localtime(&t); // obtem hora, minuto e segundo e os aloca em uma variavel do tipo inteiro hora = local -> tm_hour; minuto = local -> tm_min; segundo = local -> tm_sec; // por algum motivo precisa converter os valores retornados pelos ponteiros // da funcao em variaveis do tipo char sprintf(var1,"%s",format(hora)); sprintf(var2,"%s",format(minuto)); sprintf(var3,"%s",format(segundo)); // cria a variavel de retorno dos dados e cria um ponteiro para essa variavel sprintf(var5,"%s:%s:%s",var1,var2,var3); // retorna hora no formato hh:mm:ss com um ponteiro retorno = var5; return retorno; } int main() { char data_sistema[100], hora_sistema[100]; sprintf(data_sistema,"%s",data()); sprintf(hora_sistema,"%s",hora()); printf("%s\n",data_sistema); printf("%s\n",hora_sistema); }
Calculo de Área e Diametro do circulo
pegavalor.c - Interação com usuário
Nenhum comentário foi encontrado.
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Criar entrada no GRUB para uma ISO Linux (2)
Meus HDs não aparecem mais no boot da placa mãe (20)
Problema em instalar o PySide6 no Ubuntu 24.04 [RESOLVIDO] (3)