获得当前日期和时间
CTime tm=CTime::GetCurrentTime();
CString str=tm.Format("%Y-%m-%d");
在VC中,我们可以借助CTime时间类,获取系统当前日期,具体使用方法如下:
CTime t = CTime::GetCurrentTime(); //获取系统日期
int d=t.GetDay(); //获得几号
int y=t.GetYear(); //获取年份
int m=t.GetMonth(); //获取当前月份
int h=t.GetHour(); //获取当前为几时
int mm=t.GetMinute(); //获取分钟
int s=t.GetSecond(); //获取秒
int w=t.GetDayOfWeek(); //获取星期几,注意1为星期天,7为星期六
如果想计算两段时间的差值,可以使用CTimeSpan类,具体使用方法如下:
CTime t1( 1999, 3, 19, 22, 15, 0 );
CTime t = CTime::GetCurrentTime();
CTimeSpan span=t-t1; //计算当前系统时间与时间t1的间隔
int iDay=span.GetDays(); //获取这段时间间隔共有多少天
int iHour=span.GetTotalHours(); //获取总共有多少小时
int iMin=span.GetTotalMinutes();//获取总共有多少分钟
int iSec=span.GetTotalSeconds();//获取总共有多少秒
设置计时器 定义TIMER ID
#define TIMERID_JISUANFANGSHI 2
在适当的地方设置时钟,需要开始其作用的地方;
SetTimer(TIMERID_JISUANFANGSHI,200,NULL);
在不需要的时候销毁掉时钟
KillTimer(TIMERID_JISUANFANGSHI);
消息映射
void CJisuan::OnTimer(UINT nIDEvent) {}
CTime tNow = CTime::GetCurrentTime(); unsigned char buffer[255]={0}; unsigned long length; unsigned long type; HKEY hKey; RegOpenKey(HKEY_LOCAL_MACHINE,"Software//dm",&hKey); RegQueryValueEx(hKey,"date",NULL,&type,buffer,&length); RegCloseKey(hKey); int Count; Count = atoi((const char*)buffer); if(Count == 0) { CString strT; strT.Format("%d",tNow.GetTime()); RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE//dm",&hKey); RegSetValueEx(hKey,"date",0,REG_SZ,(const unsigned char *)strT.GetBuffer(strlen(strT)),strlen(strT)); RegCloseKey(hKey); } else { CString strT; strT.Format("%s",buffer); DWORD tOld = atoi(strT.GetBuffer(strlen(strT))); CTime stime(tOld); CTimeSpan span=tNow-stime; //计算当前系统时间与时间t1的间隔 int iDay=span.GetDays(); //获取这段时间间隔共有多少天 if(30-iDay > 0) { strT.Format("使用期限为30天,现在还有%d天可用",30-iDay); MessageBox(NULL,strT,"hello",MB_OK); } else { strT.Format("使用期限为30天,使用期限已过,无法使用"); MessageBox(NULL,strT,"hello",MB_OK); return false; } }