显示系统时间,网络时间转为本地时间

void CALLBACK MyTimerProc(HWND hwnd,UINT messagebox,UINT iTimerID,DWORD dwTime)

{

 SYSTEMTIME stLocal;   //系统时间

 GetLocalTime(&stLocal);

 TCHAR strTime[256];

 wsprintf(strTime,"%i年%i月%i日 %i:%i:%i",stLocal.wYear,stLocal.wMonth,stLocal.wDay,

  stLocal.wHour,stLocal.wMinute,stLocal.wSecond);

 SetDlgItemText(hwnd,IDC_EDITTIME,strTime);

}
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{

    SetTimer(hwnd,0,1000,MyTimerProc);      //1000ms,即每秒动态显示时间,其中MyTimerProc为具体要做的事
       return TRUE;
}

 

//Windows 中时间用SYSTEMTIME 结构体表示时间,怎么将ulTime 转换为SYSTEMTIME:


#define HIGHTIME
21968699 // 21968708 // Jan 1, 1900 FILETIME.highTime
#define LOWTIME
4259332096 // 1604626432 // Jan 1, 1900 FILETIME.lowtime

unsigned long ulTime;
recv(sock,(char *)&ulTime,sizeof(unsigned long),0);

ulTime = ntohl(ulTime);  //网络字节序到主机字节序

SYSTEMTIME st;


UINT64 uiCurTime, uiBaseTime, uiResult;
uiBaseTime = ((UINT64) HIGHTIME << 32) + LOWTIME;
uiCurTime = (UINT64)ulTime * (UINT64)10000000;
uiResult = uiBaseTime + uiCurTime;
FileTimeToSystemTime((LPFILETIME)&uiResult, &st);

//设置系统时间
SetSystemTime(&st);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值