1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Como fazer uma funcao que da a diferença de tempo em c? Rapido pls!

Discussão em 'Programação' iniciada por cyberfox, 4 de Junho de 2006. (Respostas: 5; Visualizações: 5387)

  1. Pessoal alguem me pode dar uma funcao que de a diferença entre dois instantes?

    Por exemplo.....no meu projecto que tenho k entregar amanha so me falta uma funcao que me de a diferença de tempo entre o tempo em que insiro um carro na garagem e quando o retiro dela.

    Ja tenho funcoes para gerar o tempo em cada instante...

    mas para gerar a diferença de tempo nao sei.....nao e uma simples subtracao pois envolve varios campos da estrutura tm do time.h da biblioteca do c...

    alguem me pode ajudar??
    cumps :)
     
  2. Hipnoted

    Hipnoted Power Member

    Pesquisa no google pela função difftime()
     
  3. TuxBoss

    TuxBoss Power Member

    Em ultimo caso podes converter as duas datas pra long fazeres a subtracção e criares um novo date com o long resultante da operação.
    Não está tão correcto como usar funções nativas, mas em ultimo caso faz o mesmo.
     
  4. ya ya sao hipoteses

    so uma cena.....

    a funcao time(&tempo) guarda no tempo a infomacao da hora/data currente em segundos.

    Mas...o tempo e uma variavel que foi declarada como time_t tempo.

    E eu n sei de k tipo e o time_t...para puder passa lo para fora de uma funcao como faço? se nao sei o tipo.....ou melhor, sei, e do tipo time_t mas..... :(

    cumps
     
  5. usa a funçao gettimeofday

    usas no inicio e no fim e dps fazes a subtraçao ;)
     
    Última edição: 4 de Junho de 2006
  6. moo

    moo

    Talvez este código te ajude:

    Código:
    #include <time.h>
    #include <stdio.h>
    
    int main()
    {
    	time_t begin;
    	time_t end;
    
    	begin = time(NULL);
    	printf("Press enter...\n");
    	getchar();
    	end = time(NULL);
    	printf("Difference is %f\n", difftime(end, begin));
    }
    
    Relativamente à função time(), esta devolve o valor actual de tempo (ou a melhor aproximação que conseguir). Se passares um apontador não nulo como argumento, o time_t por ele apontado também fica com um valor igual. Podes ver isso nesta parte final da implementação da função time:

    Código:
    time_t time(time_t timeptr)
    {
            // ...
            if (timeptr)
                    *timeptr = tim;         /* store time if requested */
    
            return tim;
    }
    
     

Partilhar esta Página