Salve a tutti!
Tempo fa ho scritto la seguente funzione per prelevare la data di sistema:
Ultimamente mi sono accorto che ha qualche problemino!codice:int readDate(int id) { time_t date; struct tm * brokendown=NULL; char * readableDate=NULL; time(&date); //Lettura della data //Converto il calendar time dato in formato time_t //in un broken-down time. brokendown=localtime(&date); readableDate=asctime(brokendown); //Memorizzo la data in un formato leggibile! switch(id) { case 1: return brokendown->tm_mday; case 2: return brokendown->tm_mon; case 3: return brokendown->tm_year; case 4: printf("%s", readableDate); break; } return -1; }
Mi spiego meglio: la chiamata readDate(3) invece di ritornare come anno "2005" ritorna "105". Come mai?
Qualcuno ha una soluzione? Plz!