PDA

Visualizza la versione completa : [C] Leggere calendario di sistema


9600xt
07-11-2007, 19:20
come da oggetto vorrei fare un ciclo if con una condizione particolare, mi spiego, il programma dovrebbe leggere la data di sistema e riconoscere se successiva o meno a quella che impongo io, e se la condizione è vera proseguire con in ciclo altrimenti fermarsi e non eseguire il ciclo...... in pratica mi serve per fare un programmino che faccia gli auguri di natale alla mia ragazza, ma nn voglio che lo esegua prima del tempo, una scemenza che mi incuriosisce però. esiste una funzione che mi permette di fare questo e magari poi impostare una variabile intera ad 1 o a 0 nei due casi? ringrazio chi volesse darmi una mano

ps: un esempio di come usare la funzione che mi suggerirete sarebbe graditissimo........

pallinopinco
07-11-2007, 19:27
Per ricavare la data odierna puoi usare funzioni ANSI C:



struct tm* data;
time_t oggi = time(0);
data = localtime(&oggi);
... // Qui verifichi se è il compleanno


Oppure funzioni OS-dependent, quale sistema operativo usa la tua ragazza?

9600xt
07-11-2007, 19:32
usa windows xp, ma in questo caso farebbe differenza ad esempio con vista?? preferirei fare qualcosa di os independent quindi usando cmq funzioni del c, ma cmq dimmi pure questo metodo, nn si butta via nulla, sempre qualcosa in più che saprò, cmq molte grazie, velocissimo e puntualissimo :)

pallinopinco
07-11-2007, 19:51
No, tra XP e Vista non cambierebbe nulla.

In ogni caso credo che tu voglia mostrare un messaggio in una finestra (o qualcosa del genere), quindi comunque ti legheresti ad un sistema operativo. Per ricavare la data con l'API di Windows usa la funzione GetLocalTime (http://msdn2.microsoft.com/en-us/library/ms724338.aspx).

9600xt
07-11-2007, 20:08
mi sa tanto che non ho capito molto, ci sto provando ma nn riesco, riprovo ancora prima di gettare la spugna però

9600xt
07-11-2007, 20:23
sono in altomare, visto che non riesco a capire come usare le funzioni che mi hai postato prima ti chiedo se hai la pazienza di scrivermi il codice completo (l'intero main e le librerie da includere) per leggere la data di sistema (mi interessa solo la data e nn l'ora) e salvarla dentro una variabile di tipo int o una stringa, ma preferirei la prima......... vediamo se con un esempio completo capisco un po meglio....... :cry:

pallinopinco
07-11-2007, 20:39
Usa il codice standard:



struct tm* data;
time_t oggi = time(0);
data = localtime(&oggi);


poi puoi ricavare le singole componenti (http://publications.gbdirect.co.uk/c_book/chapter9/date_and_time.html) della data:

giorno = data->tm_mday
mese = data->tm_mon
anno = data->tm_year

In realtà non necessario farlo, perché puoi confrontare direttamente la data attuale con quella del compleanno senza passare per giorno/mese/anno.

9600xt
07-11-2007, 21:23
grazie mille!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! funziona!!!!!!!!!!!!!!!!!!!!!!!!!! sei un grande!!! non so nemmeno io come, ma funziona alla grande!!!!!!! :unz: :yuppi:

Loading