|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
|
[C] contare il tempo trascorso da un determinato istante
Salve, il mio problema è questo. Dovrei creare una funzione che, dopo aver passato un intero S che rappresentano i secondi che il programma dovrebbe stare in esecuzione , mi debba restituire (o stampare a video), ogni volta che la chiamo:
1) il tempo trascorso dall'avvio del programma a quando la chiamo 2) il tempo restante alla fine del programma...cioè se S = 100 secondi, e io la chiamo dopo 20 secondi, la funzione dovrebbe restituire o stampare a viedo 80 secondi. Il problema è che non sò come gestire la seconda parte, visto che per la prima credo di utilizzare la libreria ctime, com la funzione difftime(start stop). Qualche suggerimento?? grazie
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Jun 2007
Città: (BG)
Messaggi: 32
|
Non so se ho capito bene, ma tu sei in grado di conoscere da quanto tempo è in esecuzione il programma e quanto deve restare attivo giusto?
Se fai la differenza tra il tempo che deve restare attivo e il tempo che è in esecuzione il programma non risolvi il problema? |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
|
Quote:
Spero di essere stato chiaro......ma non è semplice ![]()
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread |
|
![]() |
![]() |
![]() |
#4 | ||
Member
Iscritto dal: Jun 2007
Città: (BG)
Messaggi: 32
|
Quote:
Quote:
ho capito bene? |
||
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
|
esatti..per il primo stò apposto...posto stampare il tempo in secondi, minuti ecc....ma il problema è la seconda parte...
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread |
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Jun 2007
Città: (BG)
Messaggi: 32
|
Bene, abbiamo il tempo totale "S" e il tempo che è trascorso da quando è stato lanciato il programma che chiamiamo "T". giusto?
ora, se fai S-T ottieni il tempo che manca al termine del programma. |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
|
Quote:
![]() Io ho il tempo in formati "time"....S invece è un intero...non posso sottrarli normalmente...
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
|
nuessun suggerimento?
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread |
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Jun 2007
Città: (BG)
Messaggi: 32
|
sì, scusa.. era un po' che non passavo di qua..
Allora.. non so nella libreria ctime, ma nella time.h la struttura tm è dichiarata così Codice:
struct tm { int tm_sec; // Secondi: da 0 a 60. int tm_min; // Minuti: da 0 a 59. int tm_hour; // Ora: da 0 a 23. int tm_mday; // Giorno del mese: da 1 a 31. int tm_mon; // Mese dell'anno: da 0 a 11. int tm_year; // Anno dal 1900. int tm_wday; // Giorno della settimana: da 0 a 6 // con lo zero corrispondente alla domenica. int tm_yday; // Giorno dell'anno: da 0 a 365. int tm_isdst; // Ora estiva. Contiene un valore positivo // se è in vigore l'ora estiva; zero se l'ora // è quella «normale» ovvero quella invernale; // un valore negativo se l'informazione non è // disponibile. }; Se devi dichiarare una struttura tm: Codice:
struct tm time; Codice:
long int secondi_epoca; secondi_epoca=time(0); Codice:
localtime_r(&secondi_epoca, &time); printf("Ora: %d", time.tm_hour); //Stampare per esempio l'ora ![]() ciaociao |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:06.