求C++获取系统时间源代码,精确到毫秒

要求:将年份赋值给变量t_y,将月份赋值给变量t_m,将小时数赋值给变量t_h,将分钟数赋值给变量t_Min,将秒数赋值给变量t_s,将毫秒赋值给变量t_Mi... 要求:
将年份赋值给变量t_y,
将月份赋值给变量t_m,
将小时数赋值给变量t_h,
将分钟数赋值给变量t_Min,
将秒数赋值给变量t_s,
将毫秒赋值给变量t_Mi
展开
 我来答
庹慧智0k
推荐于2017-09-10 · TA获得超过331个赞
知道小有建树答主
回答量:598
采纳率:0%
帮助的人:134万
展开全部
#include <iostream>
#include <windows.h>

using namespace std;

void main()
{

SYSTEMTIME time;//时间结构声明,这个结构是系统的,
GetSystemTime( &time ); //调用获取系统时间api.
//GetLocalTime();这个函数是获取本地时间api
char* t_y;
char* t_m;
char* t_h;
char* t_Min;
char* t_s;
char* t_Mi;
char* t_d;
char* t_w;

SYSTEMTIME time;//时间结构声明,这个结构是系统的,
GetSystemTime( &time );//调用获取系统时间api.
sprintf(t_y, "%d", time.wYear);//将年份格式输出到t_y变量中
sprintf(t_m, "%d", time.wMonth);
sprintf(t_w, "%d", time.wDayOfWeek);
sprintf(t_d, "%d", time.wDay);
sprintf(t_h, "%d", time.wHour);
sprintf(t_Min, "%d", time.wMinute);
sprintf(t_s, "%d", time.wSecond);
sprintf(t_Mi, "%d", time.wMilliseconds);
printf("%s,%s,%s,%s,%s,%s,%s,%s",
time.wYear,
time.wMonth,
time.wDayOfWeek,
time.wDay,
time.wHour,
time.wMinute,
time.wSecond,
time.wMilliseconds);

}
/***
SYSTEM  结构成员如下:
 SYSTEMTIME STRUCT
  {
  WORD wYear ; 年
  WORD wMonth ;月
  WORD wDayOfWeek ;星期,0=星期日,1=星期一...
  WORD wDay ;日
  WORD wHour ;时
  WORD wMinute ;分
  WORD wSecond ;秒
  WORD wMilliseconds ;毫秒
  }SYSTEMTIME ENDS
//***/
追问
您好!我将你的源代码"
#include
.....
time.wMilliseconds);"
输入编译器后,出现一个错误:
错误 1 error C2086: “SYSTEMTIME time”: 重定义
追答
重定义了, 你注释一个就可以了。 这么简单的错误都搞不定吗。 
SYSTEMTIME time;//时间结构声明,这个结构是系统的,注释掉。
eerfcfc
推荐于2021-01-16 · TA获得超过389个赞
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:142万
展开全部

时间类,可以这样初始化:CTime  t(1999, 3, 19, 22, 15,0); // 10:15 PM March 19, 1999

有函数 static CTime GetCurrentTime()函数,获取当前时间;

然后用CString  Format("%H:%M:%S"):用来格式化得到的CTime,参数可以是A(星期几),B(月份),d(日期),Y(年份),HMS(时分秒);

毫秒用所得的CTime值余1000即可得。

下面是代码:

CTime time = CTime::GetCurrentTime();
CString strTime = time.Format("%Y:%B:%d:%H:%M:%S");
strTime = CPLSPrintf("%d",time);
int nMs = atoi(strTime) % 1000;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雕乾忆
2013-09-29
知道答主
回答量:17
采纳率:0%
帮助的人:6.8万
展开全部
DWORD dwTick = GetTickCount();
int wYear = 0;
int wMonth = dwTick / 3600000 / 24 / 30;
int wDay = dwTick / 3600000 / 24 % 30;
int wHour = dwTick / 3600000 % 24;
int wMinute = dwTick / 60000 % 60;
int wSecond = dwTick / 1000 % 60;
int wMillSecond = dwTick % 1000;
wchar_t wszTemp[DATA_LEN];
swprintf_s(wszTemp,L"\n current system run : %d月%d天%d小时%d分钟%d秒 \n",wMonth,wDay,wHour,wMinute,wSecond);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6886f03
2013-09-29 · TA获得超过180个赞
知道小有建树答主
回答量:590
采纳率:0%
帮助的人:343万
展开全部
SYSTEMTIME sys; 
GetLocalTime( &sys ); 
printf( "%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n",sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute, sys.wSecond,sys.wMilliseconds,sys.wDayOfWeek);

精确度毫秒级,需要使用windows API

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式