Função de diferença na linguagem C

Função de diferença na linguagem C
Funções definidas no “tempo.O cabeçalho H ”é usado para determinar, calcular e converter o Unix Times. A unidade de tempo neste sistema é a segunda. Para obter os dados da data, uma conversão deve ser feita.

Nisso Linux Dica Artigo, mostraremos como usar a função DIFFTIME () para determinar a diferença entre duas vezes. Discutiremos a sintaxe desta função, os argumentos de entrada e saída e os tipos de dados usados ​​em cada caso. Em seguida, aplicamos a função com alguns exemplos práticos, incluindo trechos de código em imagens.

Função difftime ()

Função DIFFTIME () Sintaxe na linguagem C

duplo dif = difftime (time_t t_2, time_t t_1);

Descrição da função DIFFTIME () na linguagem C

O DIFFTIME () A função calcula a diferença de tempo em segundos entre T_1 e T_2 e retorna o resultado em Dif.

O tipo de variável time_t faz parte da biblioteca "time" e é definido em seu cabeçalho. Ambos Time_T, Clock_T e TM são typedef que é usado pelas funções nesta biblioteca para retornar seus resultados.

O DIFFTIME () A função é normalmente usada para calcular a diferença entre um determinado tempo e o tempo atual do Unix. Em seguida, usamos a matemática da divisão para encontrar a diferença de dias, horas, minutos, etc.

O DIFFTIME () é definido no “tempo.H ”cabeçalho. Antes dessa função, precisamos incluí -la em nosso “.C "ou".Arquivo H ”da seguinte maneira:

#incluir

Uma vez que incluímos o “tempo.H ”Cabeçalho, podemos usar o DIFFTIME (), time () e todas as funções que são definidas em “tempo.h ".

Como calcular a diferença de tempo entre dois registros de data e hora usando a função DIFFTIME () na linguagem C

Neste exemplo, calculamos o número de segundos que se passaram desde 1º de janeiro de 2000 às 00:00:00 até que este código seja executado em seu computador.

O primeiro passo é incluir as bibliotecas que usamos e definir o T_1 e T_2 variáveis ​​de time_t tipo e duplo Dif Como mostrado no seguinte:

#incluir
#incluir
void main ()

duplo t_diff;
time_t t_1, t_2;
//…

O tempo do Unix é o segundos decorridos desde 00:00:00 UTC em 1 de janeiro de 1970. Para a data e hora, que é 1 de janeiro de 2000 às 00:00:00, este contador é de 946.695.600 segundos. Este é o valor do T_2 variável.

O tempo atual do Unix é determinado usando a função Time (). Esta função retorna o horário atual em uma variável do tipo TIME_T. Nesse caso, é T_1 que definimos anteriormente.

No fragmento a seguir, atribuímos o tempo Unix correspondente a 1º de janeiro de 2000 no horário 00:00:00 a T_1. Obtemos o tempo atual do UNIX em T_2 usando a função Time () e exibimos o resultado no console de comando usando a função printf ().

#incluir
#incluir
void main ()

time_t t_1, t_2 = 946695600;
t_1 = tempo (nulo);
printf ("O tempo Unix é: %ld \ n", t_1);

A imagem a seguir mostra a execução deste fragmento e o número de segundos Unix em T_1:

Depois de obtermos o tempo atual no T_2 variável, já temos os dois dados que precisamos para os argumentos de entrada do DIFFTIME () função.

O próximo passo é encontrar a diferença de horário entre esses dois dados. Para fazer isso, chamamos o DIFFTIME () função com T_1 e T_2 como argumentos de entrada e duplo dif Como argumento de saída.

O trecho seguinte mostra o código completo que chama essa função e exibe a diferença entre T_1 e T_2 No console de comando:

#incluir
#incluir
void main ()

Doublediff;
time_t t_1, t_2 = 946695600;
t_1 = tempo (nulo);
diff = difftime (t_1, t_2);
printf ("A diferença de segundos é: %li \ n", (long int) diff);

A imagem a seguir mostra a saída do DIFFTIME (), a diferença de segundos entre 00:00:00 UTC em 1º de janeiro de 1970 e a hora em que esse código é executado na linha de comando:

Como converter o Unix Seconds para o formato DateTime no idioma C

A função ctime () aceita as variáveis ​​do time_t tipo em seus argumentos de entrada e retorna uma string com o tempo Unix que é convertido em formato de data.

Em seguida, usamos o código do exemplo anterior e as funções ctime () e printf () para exibir os horários de T_1 e T_2 que são convertidos em tempo de dados.

#incluir
#incluir
void main ()

Doublediff;
time_t t_1, t_2 = 946695600;
t_1 = tempo (nulo);
diff = difftime (t_1, t_2);
printf ("A diferença entre os %s", ctime (& t_2));
printf ("e %s", ctime (& t_1));
printf ("é segundos %s \ n", (long int) diff);

A imagem a seguir mostra o formato de data e hora em T_1 e T_2:

Conclusão

Nisso Linux Dica artigo, explicamos o processo passo a passo sobre como usar DIFFTIME () Para encontrar a diferença entre duas vezes o Unix Times. Também explicamos brevemente algumas das funções adicionais da biblioteca "tempo" necessárias para obter esses dados e convertê -los até o formato de data e hora. Esperamos que você tenha achado este artigo útil. Para obter mais dicas sobre o idioma C, use o mecanismo de pesquisa em nosso site.