time.h - ich bin verwirrt.



  • Sers allerseits!

    In einem etwas größeren Projekt ist mir folgender, merkwürdiger Umstand aufgefallen:

    zwei vollkommen unterschiedliche werte in einer time_t variable erzeugen per localtime() exakt gleiche struct tm variablen!

    (um genau zu sein, der Unterschied zwischen den beiden time_t Variablen ist 3600 -> 1h)

    hier der Code, sollte überall compilierbar sein:

    #include <time.h>
    #include <stdio.h>
    
    int main(void) {
    	struct tm* T1;
    	struct tm* T2;
    	time_t a = 1337295600;
    	time_t b = 1337292000;
    	T1 = localtime(&a);
    	T2 = localtime(&b);
    
    	printf("%d,%d,%d\n",T1->tm_year,T1->tm_mon,T1->tm_mday);
    	printf("%d,%d,%d\n",T1->tm_isdst,T1->tm_wday,T1->tm_yday);
    	printf("%d,%d,%d\n\n",T1->tm_hour,T1->tm_min,T1->tm_sec);
    
    	printf("%d,%d,%d\n",T2->tm_year,T2->tm_mon,T2->tm_mday);
    	printf("%d,%d,%d\n",T2->tm_isdst,T2->tm_wday,T2->tm_yday);
    	printf("%d,%d,%d\n\n",T2->tm_hour,T2->tm_min,T2->tm_sec);
    
    	printf("%lf\n\n",difftime(a,b));
    
    	return 0;
    }
    

    Der Code ist nur eine kleine Rekonstruktion der eigentlichen "Entdeckung".
    (Erzeugt wurden die beiden werte übrigens mit der exakten gleichen Funktion)

    Weiß einer woran das liegen könnte?




Anmelden zum Antworten