Fehler bei time()
-
Hallo,
ich möchte ein Datum + Uhrzeit in eine Zahl umwandeln. Ich benutzte VS2008.#include <time.h> //Eingabe: 21.03.200512:00:00 int dateTime2Int( char *date, char *time) { int iRet = 0; time_t rawtime; struct tm * timeinfo; int jahr, monat , tag, stunde, minute, sekunde; char temp[10]; //Datum einlesen if( strnlen(date,12) != 10) return -1; temp[0]=date[0]; temp[1]=date[1]; temp[2]= '\0'; tag = atoi(temp); temp[0]=date[3]; temp[1]=date[4]; temp[2]= '\0'; monat = atoi(temp); temp[0]=date[6]; temp[1]=date[7]; temp[2]=date[8]; temp[3]=date[9]; temp[4]= '\0'; jahr = atoi(temp); //Zeit einlesen if( strnlen(time,12) != 8) return -2; temp[0]=time[10]; temp[1]=time[11]; temp[2]='\0'; stunde = atoi(temp); temp[0]=time[13]; temp[1]=time[14]; temp[2]= '\0'; minute = atoi(temp); temp[0]=time[16]; temp[1]=time[17]; temp[2]= '\0'; sekunde = atoi(temp); time( &rawtime ); timeinfo = localtime ( &rawtime ); timeinfo->tm_year = jahr - 1900; timeinfo->tm_mon = monat - 1; timeinfo->tm_mday = tag; timeinfo->tm_hour = stunde; timeinfo->tm_min = minute; timeinfo->tm_sec = sekunde; iRet = (int)mktime(timeinfo); return iRet; }Leider funktioniert es irgendwie nicht, da folgende Fehler erscheint:
error C2064: Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt
-
char *timeist ein denkbar ungünstiger name für eine variable

-
lol, das ist ja mal geil, danke.
-
Hier ist jetzt ein funktionierende Version:
//Umwandeln eines Datums in eine Zahl(Sekunden seit einem bestimmten Datum: //01.01.1970 00:00:00 Uhr Achtung Zeitzone + Sommer-Winterzeit beachten //Aufruf z.B.: dateTime2Int("01.01.1970", "02:00:03") int dateTime2Int( char *inDate, char *inTime) { int iRet = 0; time_t rawtime; struct tm * timeinfo; int jahr, monat , tag, stunde, minute, sekunde; char temp[10]; //Datum einlesen if( strnlen(inDate,12) != 10) return -2; temp[0]=inDate[0]; temp[1]=inDate[1]; temp[2]= '\0'; tag = atoi(temp); temp[0]=inDate[3]; temp[1]=inDate[4]; temp[2]= '\0'; monat = atoi(temp); temp[0]=inDate[6]; temp[1]=inDate[7]; temp[2]=inDate[8]; temp[3]=inDate[9]; temp[4]= '\0'; jahr = atoi(temp); //Zeit einlesen if( strnlen(inTime,12) != 8) return -3; temp[0]=inTime[0]; temp[1]=inTime[1]; temp[2]='\0'; stunde = atoi(temp); temp[0]=inTime[3]; temp[1]=inTime[4]; temp[2]= '\0'; minute = atoi(temp); temp[0]=inTime[6]; temp[1]=inTime[7]; temp[2]= '\0'; sekunde = atoi(temp); printf("%d.%d.%d %d:%d:%d\n", tag, monat, jahr, stunde, minute, sekunde); time( &rawtime ); timeinfo = localtime ( &rawtime ); timeinfo->tm_year = jahr - 1900; timeinfo->tm_mon = monat - 1; timeinfo->tm_mday = tag; timeinfo->tm_hour = stunde; timeinfo->tm_min = minute; timeinfo->tm_sec = sekunde; iRet = (int)mktime(timeinfo); return iRet; }