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

hora (c)

Discussão em 'Programação' iniciada por Overblaze, 29 de Fevereiro de 2008. (Respostas: 10; Visualizações: 1371)

  1. Overblaze

    Overblaze Power Member

    Boas a todos!
    Gostaria de poder mostrar a hora de sistema no ecran... alguem sabe como se faz e que bibliotecas sao necessarias?
    (uso o visual c++)

    obrigado
     
  2. heeven

    heeven Power Member


    tens de usar a biblioteca <time.h> faz um search como usar essa biblio, que eu não sei de cor :p

    cumps
     
  3. Overblaze

    Overblaze Power Member

    Esse topico fala sobre data e id automatico ou algo do genero... o que eu queria era mesmo a hora do sistema.. ex: 7:12:32

    obrigado
     
  4. MadOnion

    MadOnion Folding Member

    PHP:
    #include <stdio.h>
    #include <time.h>

    int main (void) {

    //O tempo em segundos desde 1 JAN 1970 00:00:00 ate este momento
    printf ("%d\n"time((time_t*)NULL));

    //Um apontador time_t com o mesmo tempo(uns milesimos de segundo adiantado, dependendo do processador)
    time_t t time((time_t*)NULL);

    //Uma struct tm que ja existe da biblioteca do c
    struct tm tempo;

    /* Composicao da struct tm
    struct tm {
    int tm_sec;
    int tm_min;
    int tm_hour;
    int tm_mday;
    int tm_mon;
    int tm_year;
    int tm_wday;
    int tm_yday;
    int tm_isdst;
    }
    */

    //Converter para uma struct tm, um time_t
    tempo = *localtime_r(&t, &tempo);

    //guardar para uma string um output desejado
    char str[40];
    strftime(str, (sizeof(char)*40),"DATA: \t%d-%m-%y \nHORA: \t%H:%M:%S",&tempo);

    printf("%s\n"str);
    return 
    0;
    }
    Dá uma olhada neste código que fiz, vindo desta Thread
    Acho que deve fazer aquilo que queres.
    Há maneiras mais simples de fazer, esse pedaço de código devolve o tempo num output desejado bem formatado, e com os parametros apenas desejados.
    Faz 'man' as funções acima, e vê o comportamento delas.
    Ver também -> Link

    Cumps
     
    Última edição: 1 de Março de 2008
  5. Overblaze

    Overblaze Power Member

    O que esse prog faz e mostrar datas e tempos apartir de um ano ou algo assim...eu so quero fazer um printf (ou algo assim) da hora do sistema..ou seja...se forem 4 e 30 queria que aparece-se exactamente isso...

    obrigado
     
  6. MadOnion

    MadOnion Folding Member

    Eu fiz um update à Thread, mas provavelmente não deves ter lido o resto. Já que respondeste logo a seguir sem tentar perceber realmente o que as funções faziam.
    Aquele stftime, é apenas um exemplo:
    Em vez de:
    Código:
    //guardar para uma string um output desejado
    char str[40];
    strftime(str, (sizeof(char)*40),"DATA: \t%d-%m-%y \nHORA: \t%H:%M:%S",&tempo);
    
    printf("%s\n", str);
    
    Podes tentar
    Código:
    //guardar para uma string um output desejado
    char str[40];
    strftime(str, (sizeof(char)*40),"%H:%M:%S",&tempo);
    
    printf("%s\n", str);
    
    Já agora, o tempo em C, é sempre calculado a partir de "1 JAN 1970 00:00:00", segundo a primeira norma C, isto é, foi um standard pré-definido.
    Se não servir, não posso fazer mais nada.
     
  7. Baderous

    Baderous Banido

    Enganei-me no tópico que indiquei. Mas o que queres pode ser feito com:

    Código:
    printf("Hora: %s",__TIME__);
     
  8. andre78

    andre78 Power Member

    mais simples que isto não arranjas...digo eu...hora e minuto, cada um num inteiro...é isto que keres?

    main()
    {
    time_t t = time((time_t*)NULL);
    struct tm tempo;
    tempo = *localtime(&t, &tempo);



    printf ( "Horas: %d:%d\n\n",tempo.tm_hour,tempo.tm_min);


    system("pause");

    }
     
  9. Ryo Hazuki

    Ryo Hazuki Power Member

    E se eu quiser que isto apareça no ecrã continuamente, de x em x tempo?
     
  10. xplor

    xplor Power Member

    Código:
    While(1){
    printf ( "Horas: %d:%d\n\n",tempo.tm_hour,tempo.tm_min);
    
    sleep(1);/*Atenção que onde está um é o nr de segundos em que a execução do programa fica parada nesta função, podes por o que precisares*/
    }
     

Partilhar esta Página