
当前的系统时间是由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++获取系统时间源代码,精确到毫秒等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)