C time.h funktion secunden von 1.1.1970 bis Datum

SaimenD

Cadet 1st Year
Registriert
Nov. 2013
Beiträge
14
Hey ich versuche grad die tage zwischen zwei datums festzustellen.

dafür gibts ne schöne headerdatei (time.h) mit n paar guten befehlen

ich komm schon so weit das ich mir mein erstes datum wunderbar anzeigen lassen kann

Code:
int Zeitberechnung (void)
{
	time_t t, at;
	int s=0,i=0,monat=0, d=0;
	struct tm ts;
	while(strcmp(monatzahl[i],lmonat)) i=i+1;
	monat=i;
	ts.tm_sec = ls;
	ts.tm_min = lm;
	ts.tm_hour = lh;
	ts.tm_mday = ltag;
	ts.tm_mon = monat;
	ts.tm_year = (ljahr-1900);

	t = mktime(&ts);
	printf("Datum: %s\n",asctime(&ts));
	
	return 1;
}
ich würde das datum jetzt aber gern mit der funktion difftime(time_t, time_t) weiterrechnen
finde aber keinen befehl der mir mein struct oder mein char jetzt in den typ time_t umrechnet
ich habs mit time(&ts) versucht aber das hat mir nur mein aktuelles datum zurückgegeben

Vielen Dank

SaimenD
 
Du benutzt doch schon mktime(). Warum fragst du, wie du genau das machst, was du gerade eh schon machst? Hast du überhaupt verstanden, was in deinem Programm passiert?

Außerdem benutzt du in dem Programm etliche nicht deklarierte Bezeichner. Sehr merkwürdig, das alles.
 
Zuletzt bearbeitet:
Du benutzt doch schon mktime(). Warum fragst du, wie du genau das machst, was du gerade eh schon machst? Hast du überhaupt verstanden, was in deinem Programm passiert?

Außerdem benutzt du in dem Programm etliche nicht deklarierte Bezeichner. Sehr merkwürdig, das alles.

Ok ich hab die frage vlt ein bisschen blöd formuliert

mein problem war das wenn ich:
Code:
t=mktime(&ts);
at=time(NULL);
printf("Aktuelle zeit: %f\n",difftime(at,t));
ausgeführt habe als ergebniss 0 bekommen habe

Hab noch ein bisschen dran rumprobiert und es scheint als ob es so:
Code:
at=time(NULL);
printf("Aktuelle zeit: %f\n",difftime(at,mktime(&ts)));
funktioniert bin mir aber nicht ganz sicher warum.
 
Zurück
Oben