📄 cpptime.h
字号:
#include "sys\types.h" // time(), localtime(), asctime(), difftime(), ...
#include "time.h"
#ifndef CPPTIME_H
#define CPPTIME_H
//******************************* Deklaracije << BEGIN >> *******************************
// - kalse
class KTime;
class KClock;
// - konstante
const int DUZINA_FORMAT = 100;
const int TEKUCA_GOD = 98989898; // ovo nije godina vec 'signal' da treba uzeti tekucu godinu
const long BROJ_CPU_TAKTOVA_U_SEKUNDI = CLOCKS_PER_SEC;
//******************************** Deklaracije << END >> ********************************
class KTime {
time_t t;
tm local;
char asciiRep[26];
char formatStr[ DUZINA_FORMAT ];
bool lflag, aflag;
bool bNulaDatum; // ovaj fleg se setuje kada se godina, mesec i datum postavljaju na 0
void updateLocal( bool bForce = false );
void updateAscii( bool bForce = false );
public:
// Konstruktori
KTime( void );
KTime( time_t vreme );
KTime( struct tm* timeptr );
void mark();
void mark( time_t vreme );
const char* ascii();
// Vraca string koji predstavlja vreme u zadatom formatu
const char* FormatStr( const char *format );
// Racuna vremensku razliku u odnosu na 'dt'
int delta(KTime* dt) const;
// Vraca strukturu tm ( razdvojeni podaci o vremenu i datumu : sekunde, minuti, ... )
tm GetLocal( void );
// Vraca strukturu time_t
time_t GetTimeT( void );
// Postavlja vreme ( cas, minut, sekunde ); u slucaju neuspeha vraca false.
// Ponekad 'cas' nije moguce setovati na zeljenu vrednost ( verovatno zbog
// DST - daylight saving time ); u tom slucaju, moguce je 'forsirati' postavljanje
// casa na racun pomeranja godine ( ako godina u datom kontekstu nije bitna ).
bool PostaviVreme( int nCas, int nMinut, int nSekunda = 0, bool bForsirajCas = false );
// Postavlja datum ( dan, mesec, godina ); u slucaju neuspeha vraca false.
bool PostaviDatum( int nDan, int nMesec, int nGodina = TEKUCA_GOD );
// Vraca godinu pocetka tekuceg veka ( npr. 1900 ili 2000 )
int PocetakTekucegVeka( void );
// Vraca tekucu godinu ( npr. 2002 )
int TekucaGodina( void );
// Pauzira izvrsenje dati broj sekundi
static void PauzaSek( double nSekundi );
// Vraca true ako se radi o 'nula' datumu ( mesec i dan setovani na 0 pomocu PostaviDatum ).
// Koristi se kod rucnog formatiranja ispisa ( zato sto funkcija FormatStr ne moze da
// ispise datum 00.00.0000 )
bool NulaDatum( void );
};
class KClock {
clock_t CPUclock;
public:
// Konstruktori
KClock( void );
void mark();
// Racuna vremensku razliku ( u sekundama ) u odnosu na 'CPUclk'
double delta( KClock* CPUclk ) const;
};
#endif // CPPTIME_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -