如何做一个倒计时程序
我帮同学做一个倒计时程序,计算距北京2008年奥运会时间,程序部分代码贴出
我首先获取系统时间,在转化成文件时间,也就说是用2008年8月8号8时转化成文件时间,在转化ULARGE_INTEGER 类型 变量名ui_target,在将现在时间转化成文件时间,在转换成ULARGE_INTEGER 类型 变量名 ui_now 用ui_target 减去 ui_now 得到ui_result在转化成文件时间,在转化成系统时间,但是结果都是很大数,不正确,高手和大侠帮我解决
void DrawLastingTime(HDC hdc)
{
SYSTEMTIME st={0};
char time[100];
SYSTEMTIME sys_now={0};
SYSTEMTIME sys_target={0};
FILETIME now={0};
FILETIME target={0};
FILETIME now1={0};
FILETIME target1={0};
ULARGE_INTEGER ui_now;
ULARGE_INTEGER ui_target;
sys_target.wYear = 2008;
sys_target.wMonth = 8;
sys_target.wDay = 8;
sys_target.wHour = 8;
sys_target.wMinute = 0;
GetLocalTime(&sys_now); //获取当前系统时间
SystemTimeToFileTime(&sys_now,&now); //转化成文件时间
SystemTimeToFileTime(&sys_target,&target);//转换成文件时间
memcpy(&ui_now,&now,sizeof(now));//转换成ULARGE_INTEGER
memcpy(&ui_target,&target, sizeof(target));
// ui_now.LowPart = now1.dwLowDateTime;
// ui_now.HighPart = now1.dwHighDateTime;
//ui_target.LowPart = target1.dwLowDateTime;
//ui_target.HighPart = target1.dwHighDateTime;
ULARGE_INTEGER result ;
result.LowPart = ui_target.LowPart - ui_now.LowPart; //得到结果
result.HighPart = ui_target.HighPart - ui_now.LowPart;
//求文件时间
FILETIME ft_result={0};
ft_result.dwLowDateTime = result.LowPart;
ft_result.dwHighDateTime = result.HighPart;
SYSTEMTIME sys_result={0};
FileTimeToSystemTime(&ft_result,&sys_result);//转换成系统时间
sprintf(time,"距2008年奥运会还剩—%d年%d月%d日%d小时",sys_result.wYear,sys_result.wMonth,sys_result.wDay,sys_result.wHour);
SetTextColor(hdc,RGB(0,0,200));
TextOut(hdc,300,0,time,strlen(time));
}