PDA

Visualizza la versione completa : [C] Confronto date accedendo alla struttura


Dante2897
21-03-2018, 12:37
Volevo sapere come posso confrontare l'anno di una data acquisita dall'orario di sistema con una data inserita dall'utente, quindi tramite input. Nello specifico sto cercando di evitare che al momento di una registrazione, la data di nascita di un utente corrisponda o sia superiore alla data corrente.
Es:
Se siamo nel 2018, devo evitare che l'utente possa inserire, come anno di nascita, 2021. Grazie in anticipo.
P.S. il linguaggio il C;)

Kahm
21-03-2018, 12:40
puoi usare time per la data di sistema


#include <time.h>

time_t t = time(NULL);
struct tm tm = *localtime(&t);

Dante2897
22-03-2018, 10:07
Si questo lo so, vorrei capire come posso accedere ai vari campi della struct, in modo da poter fare un confronto tra l'anno preso in input e l'anno riportato nell'orario del sistema. Vorrei sapere come posso confrontare t.tm_year con la data di nascita dell'utente
Questo il codice
time_t calend
void timecheck()
{
calend=time(&calend);
printf("%s\n", asctime(localtime(&calend)));
}
Quello che vorrei realizzare pi o meno questo

while(atof(utente.data.anno)>=atof(calend.year))
{
printf("\nLa data inserita maggiore o uguale alla data attuale.\n Inserire un anno valido.\n");
scanf("%s", utente.data.anno);
}

Kahm
22-03-2018, 10:21
io sconsiglierebbi di gestire la data con un while
basterebbi fare una void di controllo e ti ritorna l'errore, allo click de lo pulsanto

Loading