首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

询问64位时间数组怎么转化输出的有关问题

2012-05-03 
询问64位时间数组如何转化输出的问题我想实现获取服务器年月日并显示出来(格式YYYY-MM-DD)。从网上找到一段

询问64位时间数组如何转化输出的问题
我想实现获取服务器年月日并显示出来(格式YYYY-MM-DD)。
从网上找到一段从服务器获取时间并修正系统时间的代码,找到其获取的服务器时间的参数后,
其定义方式为:UINT64 uiCurtime,uiBaseTime,uiResult;//uiCurtime 为相差时间 uiBaseTime为基准时间 uiResult为所需当前时间
问题
  1:我如何把uiResult 正确显示(解析)为 (格式YYYY-MM-DD)
  PS:不要说修改完系统时间再从系统时间获取,而是直接从服务器获取后转换
  2:定义基准时间的代码
  #define HIGHTIME 21968699 //jan 1,1900
  #define LOWTIME 4259332096//jan 1,1900
  高低位如何分析出 年月日
谢谢,第一次发贴 求帮助

[解决办法]

C/C++ code
#include <afxdisp.h>#include <winbase.h>#include <stdio.h>#include <stdlib.h>typedef unsigned __int64 UINT64;UINT64 uiCurtime,uiBaseTime,uiResult; //uiCurtime 为相差时间 uiBaseTime为基准时间 uiResult为所需当前时间#define HIGHTIME 21968699   //jan 1,1900#define LOWTIME  4259332096 //jan 1,1900int main(int argc, TCHAR* argv[]) {    FILETIME *pFT; //The FILETIME structure is a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601.    COleDateTime t;    CString s,fmt;    // initialize MFC and print and error on failure    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) {        printf("Fatal Error: MFC initialization failed\n");        return 1;    }    uiBaseTime=(UINT64)LOWTIME|(((UINT64)HIGHTIME)<<32);    uiCurtime=8ui64*3600ui64*10000000ui64;//8小时    uiResult=uiBaseTime-uiCurtime;    pFT=(FILETIME*)&uiResult;    t=COleDateTime(*pFT);    fmt="%Y-%m-%d %H:%M:%S";    s=t.Format(fmt);    printf("%s\n",s);    return 0;}//1900-01-01 00:00:00 

热点排行