如何获取系统时间,能精确到毫秒级

如何获取系统时间,能精确到毫秒级,第1张

当前的系统时间是由WM的使用者设置的,谁也不会设置精确到毫秒,就算设置的时间与标准时间差了很多,WM本身也无法纠正。

楼主要是精确到毫秒计时,那GetTickCount就可以了。

系统自带的now 或者Timer函数都只能获取到秒,一个相关的API,使用Windows API的winmmdll其中的timeGetTime 可以获得毫秒数,这个值是从开机到现在的毫秒数。

Private Declare Function timeGetTime Lib "winmmdll" () As Long

Private Sub btnTest_Click()

Dim StartMS As Long

Dim EndMS As Long

Dim MS As Long

StartMS = timeGetTime() '开始毫秒数

While timeGetTime < StartMS + 200 '循环等待

DoEvents '转让控制权,以便让 *** 作系统处理其它的事件

Wend

EndMS = timeGetTime() '结束毫秒

MS = EndMS - StartMS '取两者相差的毫秒数

MsgBox "毫秒数:" & MS

End Sub

While timeGetTime < StartMS + 200 '循环等待

DoEvents '转让控制权,以便让 *** 作系统处理其它的事件

Wend

上面三句代码网友可以更换成自己实际计算过程的代码。

#include <iostream>

#include <windowsh>

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", timewYear);//将年份格式输出到t_y变量中

sprintf(t_m, "%d", timewMonth);

sprintf(t_w, "%d", timewDayOfWeek);

sprintf(t_d, "%d", timewDay);

sprintf(t_h, "%d", timewHour);

sprintf(t_Min, "%d", timewMinute);

sprintf(t_s, "%d", timewSecond);

sprintf(t_Mi, "%d", timewMilliseconds);

printf("%s,%s,%s,%s,%s,%s,%s,%s",

timewYear,

timewMonth,

timewDayOfWeek,

timewDay,

timewHour,

timewMinute,

timewSecond,

timewMilliseconds);

}

/

SYSTEM结构成员如下:

 SYSTEMTIME STRUCT

{

WORD wYear ; 年

WORD wMonth ;月

WORD wDayOfWeek ;星期,0=星期日,1=星期一

WORD wDay ;日

WORD wHour ;时

WORD wMinute ;分

WORD wSecond ;秒

WORD wMilliseconds ;毫秒

}SYSTEMTIME ENDS

///

方案一:上电程序将RTC的时间保存下来,运行时再次获取RTC时间,减去上电时保存的时间(注意不是直接0进制算术,时间包括日期、时间、亚秒寄存器)。

方案二、使用一个定时器毫秒中断一次,给一个变量累加,这个变量就是上电以毫秒数。(精度较低)

方案三、使用RTC产生一个毫秒中断,给一个变量累加,原理同“二”。

推荐方案一,精度高,且不浪费资源,到程序稍复杂

在任一单元格内输入或复制粘贴下列公式

=TEXT(NOW(),"yyyy-m-d h:mm:ss000")

在A1中输入或复制粘贴下列公式

=NOW()

选择A1 CTRL+1 数字 自定义 类型 输入 yyyy-m-d h:mm:ss000 确定

每按一下F9键,更新一次数值

系统时间一般是值服务端时间,js获取服务端时间的方法是直接用ajax获取。

编写显示时间的页面:

<html>

<head>

<meta >

<title>Server date/time</title>

<script language="javascript" src="serverDatejs"></script>

</head>

<script language="javascript">

var localTime = new Date();

documentwrite("Local machine time is: " + localTime + "<br>");

documentwrite("Server time is: " + date);

</script>

<body>

</body>

ajax脚本获取server的时间

var xml>

function srvTime(){

try {

//创建xml>

xml>

}

catch (err1) {

//ie浏览器

try {

xml>

}

catch (err2) {

try {

xml>

}

catch (eerr3) {

//ajax不支持

alert("AJAX not supported");

}

}

}

//打开xml>

xml>

//设置xml>

xml>

//发送请求

xml>

// 获取response中的Date参数

return xml>

}

var st = srvTime(); //服务器时间赋值给st变量

var date = new Date(st); //转换js的date对象

// 输出服务器时间

documentwrite("服务器时间: " + date);

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

语句:JavaScript程序是由若干语句组成的,语句是编写程序的指令。JavaScript提供了完整的基本编程语句,

它们是:赋值语句、switch选择语句、while循环语句、for循环语句、for each循环语句、dowhile循环语句、break循环中止语句、continue循环中断语句、with语句、try…catch语句、if语句(ifelse,if…else if…)。

用CTime中的GetCurrentTime获取当前的时间的值做为基准值TBase,然后用QueryPerformanceCounter取得时间差TDelta;这样系统时间就这么算:T=TBase+TDelta/1000;这是毫秒,微秒=TDelta%1000;这样就可以精确到微秒了,我就是这么算的

以上就是关于如何获取系统时间,能精确到毫秒级全部的内容,包括:如何获取系统时间,能精确到毫秒级、VBA中 怎么获得时间的毫秒数 用time只能得到秒,毫秒怎么算出来啊、求C++获取系统时间源代码,精确到毫秒等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9471465.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存