Uhrzeiten ausgeben aber auch differenz berechnen



  • Es ist ja bekannt, wie man die Uhrzeit ausgeben kann:

    #include <stdio.h>
    #include <time.h>
    
    int main(void)
    {
    struct tm *newtime;
    time_t long_time;
    
    time( &long_time );
    newtime = localtime( &long_time );
    
    printf("Uhrzeit = %d:%d:%d", newtime->tm_hour, newtime->tm_min, newtime->tm_sec);
    
    return 0;
    }
    

    Aber wenn ich nun ein paar min später mir nochmal die Uhrzeit anzeigen möchte und mir dann die Differenz errechen mag, dann sind wir bei mein Problem 🙂

    Es gibt zwar die tolle Funktion difftime(time_t, time_t); aber wie kann ich die Funktion dann überhaupt auf meine beiden vorherigen Uhrzeiten anwenden? Hab da doch eher nen Typenkonflikt, weil ich oben ja quasi nur drei Zahlenpaare (h,min,sec) ausgebe und kein time_t.



  • Hi there!

    #include <time.h>
    #include <windows.h>
    
    int main()
    {
    	time_t now, later;
    	double diff;
    
    	now = time ( NULL );
    	Sleep ( 1000 );
    	later = time ( NULL );
    
    	diff = difftime ( later, now );
    
    	printf ( "Seconds: %.3f", diff );
    
    	return 0;
    }
    


  • Bin nicht sicher, was Du willst. Sowas vielleicht?

    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>
    #include <windows.h>
    
    int main ()
    {
        time_t time1;
        time_t time2;
        time_t time_diff;
        struct tm* time_struct;
    
        time(&time1);
        _sleep(2000); /*windows*/
        time(&time2);
    
        time_diff = time2 - time1;
    
        time_struct = gmtime(&time_diff);
    
        printf("%02d:%02d:%02d\n", time_struct->tm_hour, time_struct->tm_min, time_struct->tm_sec);
    
        return 0;
    }
    

Log in to reply