Target : 在特定时间或者是每隔一段时间就执行一次某程序。
C++实现。
以下是实现代码。
main.cpp
/********************************************************************
created: 2014/03/17
created: 17:3:2014 17:13
filename: E:\Code\timetest\timetest\main.cpp
file path: E:\Code\timetest\timetest
file base: main
file ext: cpp
author: JellyChen
purpose:
*********************************************************************/
#include <time.h>
#include <iostream>
#include <windows.h> // 这个头文件只是为SYSTEMTIME存在
using namespace std;
int main()
{
UINT iCompCount = 0; // 时间判断
time_t systimeStart, systimeEnd; // 时间
UINT rateSec = 5; // 频率,几秒一次
int i = 0; // 监视循环执行次数
time(&systimeStart); // 获取初始时间
while(1)
{
time(&systimeEnd); // 获取当前时间
// 时间判断
{
// 需要在指定时间执行程序则将初试时间设为定值即可
if((systimeEnd - systimeStart) % rateSec == 0) // 5秒执行一次程序
iCompCount++;
else
iCompCount = 0;
}
// 执行
if(iCompCount == 1)
{
//
// TODO :
// 测试,输出现在时间
SYSTEMTIME NowTime;
GetLocalTime(&NowTime);
printf("%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n",
NowTime.wYear, NowTime.wMonth, NowTime.wDay,
NowTime.wHour, NowTime.wMinute, NowTime.wSecond,
NowTime.wMilliseconds, NowTime.wDayOfWeek);
cout << "PassTime = " << systimeEnd - systimeStart << endl;
cout << i << endl;
//
}
Sleep(10); // 循环太快,CPU占用资源相当大,必须加时间控制,这只是简单的用sleep加以限制
i++; // 测试循环次数
}
return 0;
}