使用C标准库函数clock表示系统启动后的毫秒数

This commit is contained in:
Stone 2016-06-19 14:00:15 +00:00
parent 5cacafc1f2
commit ccdbc49abb
4 changed files with 26 additions and 45 deletions

View File

@ -3,7 +3,7 @@
#include "SString.h" #include "SString.h"
#include "DateTime.h" #include "DateTime.h"
#include "Environment.h" #include <time.h>
/************************************************ DateTime ************************************************/ /************************************************ DateTime ************************************************/
@ -414,9 +414,8 @@ cstring DateTime::GetString(byte kind, char* str)
// 当前时间 // 当前时间
DateTime DateTime::Now() DateTime DateTime::Now()
{ {
auto& env = Environment; DateTime dt(time(NULL));
DateTime dt(env.Seconds() + env.BaseSeconds()); dt.Ms = clock();
//dt.Ms = env.Ms();
return dt; return dt;
} }

View File

@ -8,31 +8,11 @@
const TEnvironment Environment; const TEnvironment Environment;
/************************************************ TEnvironment ************************************************/ /************************************************ TEnvironment ************************************************/
TEnvironment::TEnvironment() // 获取系统启动后经过的毫秒数
{ UInt64 TEnvironment::TickCount() const { return clock(); }
srand(time(NULL));
}
// 程序执行起(一般为程序的开头),处理器时钟所使用的时间
UInt64 TEnvironment::Ticks() const
{
return clock();
}
// 每秒的处理器时钟个数
uint TEnvironment::ClocksPerSecond() const
{
return CLOCKS_PER_SEC;
}
// 获取系统启动后经过的毫秒数 // 获取系统启动后经过的毫秒数
UInt64 TEnvironment::TickCount() const UInt64 TEnvironment::Ms() const { return clock(); }
{
return clock() * 1000 / CLOCKS_PER_SEC;
}
// 获取当前计算机上的处理器数 // 获取当前计算机上的处理器数
int TEnvironment::ProcessorCount() const int TEnvironment::ProcessorCount() const { return 1; }
{
return 1;
}

View File

@ -5,21 +5,11 @@
class TEnvironment class TEnvironment
{ {
public: public:
TEnvironment();
// 程序执行起(一般为程序的开头),处理器时钟所使用的时间
UInt64 Ticks() const;
// 每秒的处理器时钟个数
uint ClocksPerSecond() const;
// 获取系统启动后经过的毫秒数 // 获取系统启动后经过的毫秒数
UInt64 TickCount() const; UInt64 TickCount() const;
// 获取系统启动后经过的毫秒数 // 获取系统启动后经过的毫秒数
UInt64 Ms() const; UInt64 Ms() const;
// 获取系统基准秒数。加上启动后秒数即可得到绝对时间
uint BaseSeconds() const;
// 获取系统启动后经过的秒数
uint Seconds() const;
// 获取当前计算机上的处理器数 // 获取当前计算机上的处理器数
int ProcessorCount() const; int ProcessorCount() const;

View File

@ -1,4 +1,6 @@
#include "Time.h" #include <time.h>
#include "Time.h"
#include "Environment.h" #include "Environment.h"
@ -128,13 +130,23 @@ void TTime::Delay(uint us) const
#endif #endif
#endif #endif
extern "C"
{
// 获取系统启动后经过的毫秒数
clock_t clock(void)
{
return Time.Current();
}
// 获取系统启动后经过的毫秒数 // 实现C函数库的time函数
UInt64 TEnvironment::Ms() const { return Time.Current(); } time_t time(time_t* seconds)
// 获取系统基准秒数。加上启动后秒数即可得到绝对时间 {
uint TEnvironment::BaseSeconds() const{ return Time.BaseSeconds; } uint s = Time.BaseSeconds + Time.Seconds;
// 获取系统启动后经过的秒数 if(seconds) *seconds = s;
uint TEnvironment::Seconds() const{ return Time.Seconds; }
return s;
}
}
/************************************************ TimeWheel ************************************************/ /************************************************ TimeWheel ************************************************/