Função de difftime em C ++

Função de difftime em C ++
Ao calcular ou executar qualquer operação, podemos precisar de qualquer função para calcular o tempo total que passou até agora ou fornecer a diferença de tempo em segundos entre dois pontos. Em C ++, pode haver maneiras diferentes de executar essa tarefa de forma inadequada. Mas discutiremos a função interna de C ++, que é a função DiFFTIME (), pois o nome indica que ele calcula a diferença no tempo. Esta função é definida na biblioteca . Portanto, sempre que estivermos dispostos a calcular o tempo, precisaremos desta biblioteca no código -fonte.

Sintaxe do DIFFTIME ()

duplo diffTime (time_obj end, time_obj start);

A função leva dois parâmetros nele. Estes são os objetos que são declarados através do objeto do tempo 'time_obj'. Um é o 'fim' que mostra o tempo final de qualquer processo. Ao mesmo tempo, o segundo é o 'início' que representa o horário de início. O valor de retorno da função DIFFTIME () retorna a diferença entre o tempo em segundos obtidos dos dois objetos, conforme descrito acima.

Esta função está associada ao tempo de função interno () em C ++, pois esta função retorna o tempo atual do calendário. Isso também está presente no arquivo de cabeçalho de C++.

Implementação da função DIFFTIME ()

Exemplo 1 # DIFFTIME () para os produtos

Para encontrar a diferença entre duas vezes em segundos, é necessário adicionar a biblioteca na qual a função Difftime () é definida. Na linguagem de programação C ++, esta biblioteca deve ser usada.

#incluir
#incluir

Conforme discutido anteriormente, no programa principal, dois objetos, Start and the Term, são necessários para calcular a diferença entre os tempos. Esses dois objetos são declarados usando o time_time.

Time_t iniciar, terminar

Outra variável com o nome do produto de um tipo de dados longo é declarado que armazenará a operação que resulta nele. Sempre que a lógica que queremos aplicar no programa, isso será escrito dentro do corpo de objetos de início e final.

Tempo (& start);
Tempo (e acabamento);

Como o objeto de tempo de início inicia o tempo e continua enquanto a função/ operação está em andamento quando o processo é concluído, o objeto acabado observa o tempo do fim. Por exemplo, neste programa explicado abaixo, usamos um loop simples 'para' para calcular o produto de dois valores. Esses dois valores começam de 0 e terminam em um grande valor. O loop externo 'para' termina antes de 1000, e o loop interno termina em 30000; Dentro do loop 'for', o corpo em cada iteração, o número do exterior e o número do loop interno são multiplicados. As variáveis ​​'i' e 'j' são indicadas para cada número após cada iteração, um novo número em cada ciclo. O resultante é armazenado na variável 'produto'

Produto = i * j;

O tempo necessário que queremos obter é calculado através da função de diferença. Como esta função contém dois parâmetros, então a função será:

DIFFTIME (acabamento, início);

Esta função retornará o tempo obtido subtraindo o horário de início do horário de término.

Agora salve o código -fonte com a extensão C. Usamos um compilador G ++ para compilar um arquivo C ++ e executá -lo. O arquivo que usamos aqui é 'DIF. C 'que contém o código-fonte, ele é compilado e a saída é armazenada no arquivo de saída através de' -o '.

$ g ++ -o Dif.c
$ ./DIF

Você pode ver que o tempo necessário é de 0 segundos. Isso significa que o loop aninhado calculará o produto em 0 segundos. No código acima, o valor na parte externa para loop é menor que o interno, então a diferença horária foi zero porque pode ser calculada facilmente. E se o valor no interior do loop se tornar menor que o externo para loop? Vamos explicar a seguir. O restante dos requisitos é o mesmo. O produto será calculado dentro do loop. Usaremos os objetos de início e terminar para observar os valores iniciais e finais.

Agora salve o código e execute -o. Na execução, você verá que levará algum tempo. Em comparação com a situação anterior, isso leva apenas zero segundos, e o resultado foi exibido abruptamente, mas neste caso, parece que deve haver mais de zero segundos.

Depois de alguma espera, você verá a declaração resultante. De acordo com isso, os loops levaram 62 segundos para serem executados para que o produto de dois valores durante cada iteração possa ser calculado.

Exemplo 2 # DIFFTIME () para loops aninhados

Ao contrário da declaração anterior, usamos uma biblioteca diferente aqui.

Não há necessidade de especificar 'iostream' e 'ctime' ou qualquer outra biblioteca usando esta biblioteca. Ambas as variáveis ​​são inicializadas. Neste exemplo, usamos aninhados para loops três vezes. Cada loop aninhado termina, e o próximo loop aninhado começa. Cada loop dentro do loop aninhado tem um valor diferente para a variável i; Para a variável J, os valores são os mesmos para o loop interno.

Além disso, não calculamos nada ou operação. Somente a execução dos loops ocorreu. Variáveis ​​iniciais e finais observarão o tempo de partida e o final.

Após cada execução, no final, a função Difftime () é chamada para executar a resposta.

DIFFTIME (FINAL, START)

Executaremos o código -fonte para ver os segundos consumidos na execução de três loops aninhados.

Levará 10 segundos para todos os três loops coletivamente.

Exemplo 3 # DIFFTIME () por um tempo entre as datas

Para calcular a diferença horária desde o início do programa até que ele termine já está elaborado. Nossa preocupação com a discussão é calcular a diferença em segundos de um dia específico até agora. Aqui as datas não são mencionadas corretamente. Mas o programa buscará a data atual do sistema. Aqui vamos calcular a diferença no tempo em segundos desde o dia de Ano Novo até agora.

O objeto da biblioteca do tempo é usado para buscar o tempo atual, para que a diferença possa ser calculada. Aqui não precisamos das variáveis ​​de início e final separadamente.

Uma estrutura do tempo 'Ano Novo' é inicializado aqui. Usaremos a variável 'agora' para obter o horário atual.

Tempo (e agora);

O objeto 'tm' da estrutura de Ano Novo declarará as horas, min, segundos e mês como zero. A função é chamada de diferença que levará agora (horário atual) e outra função interna dentro do parâmetro para obter o horário de ano novo em segundos.

Segundos = difftime (agora, mktime (& newYear));

Agora execute o programa; Você verá que 6036632 segundos são passados ​​até agora, de acordo com a data atual do seu sistema.

Conclusão

'DIFFTIME () C ++' é uma função que lida com a busca do tempo em segundos obtidos subtraindo o tempo de partida do momento do fim; Essas duas variáveis ​​de um tipo de objeto de tempo são usadas para fornecer tempo em segundos. Agora encerrando o artigo, falaremos sobre alguns exemplos que incluímos no artigo. Esta função também ajuda a fornecer o tempo a partir de uma data específica até agora, como discutido acima no exemplo.