|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2001
Città: Roma
Messaggi: 2532
|
Confrontare le Date in C
Rieccomi qui per l'ennesima domanda
![]() Se ho delle stringhe TimeStamp in formato GMT (quindi giorno-mese-anno ore.minuti.secondi ) e voglio confrontarle per vedere se un certo Timestamp è precedente o successivo ad un altro, come faccio? Devo per forza usare la struttura tm ? (non ricordo in che libreria sta)... Conoscete librerie che fanno questo? Ciao |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Puoi operare anche sui time_t con la funzione difftime...
La struttura tm è in time.h... Comunque credo che la soluzione migliore sia di prendere la stringa a riempire i vari campi di una struttura tm con sscanf... sscanf(oraGMT, "%d-%d-%d %d.%d.%d",....); Dopo converti le due strutture tm in time_t con mktime e usi difftime per ottenere il risultato... double diff; diff = difftime(mktime(&tm1), mktime(&tm2)); printf((diff > 0)?"tm2 è maggiore di tm1 di %d secondi":"tm1 è maggiore di tm2 di %d secondi", (int)diff); Ultima modifica di cionci : 28-08-2003 alle 09:15. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Mar 2001
Città: Roma
Messaggi: 2532
|
grazie..ora provo
|
![]() |
![]() |
![]() |
#4 |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Comunque in ogni caso è sempre bene consultare LA SACRA SCRITTURA :
http://www.gnu.org/manual/glibc-2.2....e%20and%20Time ![]() ![]() ![]() Vedrai che ti tornerà utile ... (perchè, se non ricordo male, sei uno unixiano). |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Mar 2001
Città: Roma
Messaggi: 2532
|
Quote:
Grazie anhe a te...però sbagli...io sono "Windowsiano" ![]() ![]() |
|
![]() |
![]() |
![]() |
#6 | |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
![]() ![]() ![]() ![]() ![]() |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Mar 2001
Città: Roma
Messaggi: 2532
|
rieccomi a rompere
![]() stavolta vorrei sapere questo: ho una struct (chiamiamola "st") i cui elementi sono char * elem1; char *elem2; int elem3; Vorrei sapere qual è la sintassi per far stampare a video i valori contenuti in quegli elementi. Usando printf(st->elem1) ...etc a volte non mi ritorna nulla oppure mi crasha... Inoltre non so se scrivere *nomevariabile oppure * nomevariabile (notare lo spazio nel secondo caso) , vogliono dire cose diverse... Scusate, ma i puntatori li odio perchè sono Javista ![]() |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Per lo spazio puoi fare come più ti piace...
Ma quei puntatori a cosa puntano ? Se fai due puntatori, non li fai puntare a niente e poi li usi è normale che ti crashi il programma... |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Mar 2001
Città: Roma
Messaggi: 2532
|
puntano ad aree di memoria allocate prima con malloc e poi inizializzate con dei caratteri tramite strcpy..
non và bene? |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sì, ma dovresti farci vedere il codice
![]() |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Mar 2001
Città: Roma
Messaggi: 2532
|
ok, quel problema l' ho risolto..
qualcuno se ne intende di bufferizzazione in RAM? FILE *fp_cache; /*** Prepara il registro di cache ad essere usato. ***/ void cache_init() { if ((fp_cache = fopen("cache_reg.dat","r+")) == NULL) printf("Errore nell'apertura del registro di cache"); setvbuf(fp_cache,NULL,_IOLBF,BUFF_LEN); //Bufferizza in RAM il registro di cache per migliorare le prestazioni in lettura e scrittura. } Le operazioni che faccio in seguito sul puntatore fp_cache (tipo fread(fp...etc), è sicuro che me le fa in RAM e non su disco? E poi aggiorna il file su disco quando il buffer è pieno o in momenti di calma... questa funzione setvbuf non l'ho mai usata.. per la cronaca,tutta questa storia è per un server http. Ciao ciao |
![]() |
![]() |
![]() |
#12 | |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Ti ripeto, cerca sulla BIBBIA ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:03.