PDA

View Full Version : [c++] leggere l'ora del computer


michele.t
06-11-2003, 07:59
ciao, stavo cercando un sistema per leggere la data e l'ora con time.h ma le mie conoscenze di c++ si fermano ai puntatori.... e dopo aver spulciato google ieri, spero che qualcuno possa illuminarmi visto che ci ho capito poco!!!

grazie, michele

cionci
06-11-2003, 09:06
#include <time.h>
#include <stdio.h>

void main( void )
{
time_t ltime;

time( &ltime );
printf( "The time is %s\n", ctime( &ltime ) );
}

michele.t
06-11-2003, 09:26
grazie mille! provo subito!

michele.t
06-11-2003, 09:51
dovremmo poter fornire al programma la data e l'ora di partenza (da tastiera), e poter fornire ricorsivamente un intervallo di secondi col quale incrementare la data e l'ora (che poi viene rivisualizzata ad ogni ciclo). Non ci interessa quindi leggere la data e l'ora dall'orologio del computer ne vogliamo cambiarla!!!

qualche idea?

cionci
06-11-2003, 10:02
C'è la struttura tm...

tm_sec

Seconds after minute (0 – 59)

tm_min

Minutes after hour (0 – 59)

tm_hour

Hours since midnight (0 – 23)

tm_mday

Day of month (1 – 31)

tm_mon

Month (0 – 11; January = 0)

tm_year

Year (current year minus 1900)

tm_wday

Day of week (0 – 6; Sunday = 0)

tm_yday

Day of year (0 – 365; January 1 = 0)

tm_isdst

Always 0 for gmtime

Con asctime puoi stampare il contenuto della struttura tm ;)

#include <time.h>
#include <stdio.h>


void main( void )
{
struct tm newtime;
time_t aclock;

/*Qui riempi la struttura tm*/
newtime.tm_hour = 10;
/*e così via fiino ad aver reimpito tutta la struttura*/


/* Print local time as a string */
printf( "The current date and time are: %s", asctime( newtime ) );
}

cionci
06-11-2003, 10:07
Per l'intervallo in secondi il C e il C++ standard non fornisco un metodo valido...l'unico metodo che rispetta los tandard è fare un'attesa attiva su l'orario ritornato da time...


time_t clock1, clock2;

time(clock1);

/* in aclock c'è la rappresentazione in secondi dell'ora corrente */
do
{
time(clock2);
}
while(difftime(clock2, clock1) < 20);

/*Dopo venti secondi esce dal ciclo*/
/*E' un modo molto brutto di gestire questa cosa,
ma è lunico che si può utilizzare nello standard */

michele.t
06-11-2003, 10:11
che velocità! proviamo subito!!!! grazie ancora, m

michele.t
06-11-2003, 10:25
sei una belva, ci hai tirato fuori da un sacco di impicci! se ci dai l'indirizzo ti mandiamo degli affettati per natale!

:D