我们可以从时钟创建即时。时钟有时区。
Clock clock1 = Clock.system(ZoneId.of("Europe/Paris"));
Clock clock2 = Clock.system(ZoneId.of("Asia/Calcutta"));
System.out.println("Clock1 instant: " + clock1.instant());
System.out.println("Clock2 instant: " + clock2.instant());
Run Code Online (Sandbox Code Playgroud)
输出给出相同的瞬间:
时钟 1 瞬时:2022-01-21T18:36:21.848Z
时钟 2 瞬时:2022-01-21T18:36:21.848Z
那么在 Clock 中设置时区的目的是什么?
我想测量Java中的经过时间.但是System.currentTimeMillis(),(我相信)的差异System.nanoTime()可以通过外部变化来改变,例如某人(或系统)改变系统时钟.
使用网络呼叫不是一种选择,因为它可能非常频繁且需要快速返回.
对此有一个共同的解决方案吗?
编辑
对不起,我应该详细说明原因.它不是要阻止恶意用户 - 就像客户端发起的空闲登出和常规客户端事件一样.
如果我运行Sleep(10000)之类的东西,并且系统时钟在此期间发生变化,那么线程是否会在挂钟时间内停留10秒钟,或者更少或更多?即Sleep()函数将毫秒转换为硬件滴答?
所以,我正在制作一个简单的时钟,只需从静态起点开始计算时间.问题是,当第二个标记达到8时,它会重置为0.我无法弄清楚原因.救命!
这是时钟:http://jsfiddle.net/Ender/jMbem/
这是它的代码:
HTML:
<h1>Mark's Busted Computer Clock</h1>
<div id="time">
<span id="hour">146</span>:<span id="minute">45</span>:<span id="second">00</span>
</div>
Run Code Online (Sandbox Code Playgroud)
JS:
$(function() {
setInterval(UpdateSecond, 1000);
});
function UpdateSecond() {
var num = parseInt($('#second').text());
num++;
if (num == 60) {
num = 0;
UpdateMinute();
}
if (num < 10) {
num = "0" + num;
}
$('#second').text(num);
}
function UpdateMinute() {
var num = parseInt($('#minute').text());
num++;
if (num == 60) {
num = 0;
UpdateHour();
}
if (num < 10) {
num = …Run Code Online (Sandbox Code Playgroud) 我希望计算从Java中特定时间开始的毫秒数.
它System.currentTimeMillis();用于开始时间的经典方式,然后再使用前一个来获取经过的时间.我希望做类似的事情,但不要依赖系统时间.
如果我依赖系统时间,程序的用户可以操纵系统时钟来破解程序.
我尝试使用类似于以下的代码:
int elapsed = 0;
while (true) {
Thread.sleep(10);
elapsed += 10;
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,但是在计算机滞后然后锁定一两秒的情况下,它不太可靠.
任何人的想法?
十年来我没有做过任何编程.我想回到它,所以我把这个毫无意义的程序作为练习.描述它的作用的最简单方法是输出我的--help codeblock:
./prng_bench --help
./prng_bench: usage: ./prng_bench $N $B [$T]
This program will generate an N digit base(B) random number until
all N digits are the same.
Once a repeating N digit base(B) number is found, the following statistics are displayed:
-Decimal value of all N digits.
-Time & number of tries taken to randomly find.
Optionally, this process is repeated T times.
When running multiple repititions, averages for all N digit base(B)
numbers are displayed at the end, as …Run Code Online (Sandbox Code Playgroud) 我使用一个非常简单的代码来衡量执行时间.它运行良好,直到我不确定可能不会超过20分钟.但是(> 20分钟后)它返回负面结果.我在整个论坛搜索尝试了一切,比如更改数据类型,使用long unsigned(返回0)但再次失败.以下是我的代码片段
main()
{
time_t start,stop;
double time_arm;
start = clock();
/* ....... */
stop = clock();
time_arm=(double)(stop-start)/(double)CLOCKS_PER_SEC;
printf("Time Taken by ARM only is %lf \n",time_arm);
}
Run Code Online (Sandbox Code Playgroud)
输出是ARM的时间仅为-2055.367296
任何帮助表示赞赏,提前谢谢.
问题与主题一样简单。如何在STM32中延迟确切的一个时钟周期?如果控制器以168MHz运行,则一个时钟周期等于1 / 168MHz,即5.95ns吗?
我基于另一个GNU项目开始了我的第一个GNU项目,以对其进行改进并更改实现。
我尝试实现自己的构建方法,但是与时间和时钟相关的功能破坏了我的构建。
我读了很多关于堆栈溢出的问题,但我很困惑的三个库chrono,ctime和time.h。
这是构建错误:
/src/gamed/Logger.cpp
#include "Logger.h"
#include <errno.h>
#include <string.h>
#include <stdarg.h>
#include <time.h>
const std::string Logger::CurrentDateTime()
{
time_t now = time(0);
struct tm tstruct;
char buf[80];
tstruct = *localtime(&now);
strftime(buf, sizeof(buf), "%Y-%m-%d %X", &tstruct);
return buf;
}
Run Code Online (Sandbox Code Playgroud)
错误:找不到时间,本地时间和strftime标识符
/src/gamed/Packets.h
#ifndef _PACKETS_H
#define _PACKETS_H
#include <time.h>
#include <cmath>
#include <set>
{...}
class GamePacket : public BasePacket {
public:
GamePacket(uint8 cmd = 0, uint32 netId = 0) : BasePacket(cmd, netId) …Run Code Online (Sandbox Code Playgroud) 我有一个程序(用cannon算法计算矩阵乘法),在MPI中实现C,我设置了一个时钟来查看这个程序的TOTAL时间,总计是指所有的过程总和.
但结果我得到了每个过程的时间.
我的主要部分开头的部分代码:
clock_t begin, end;
double time_spent;
begin = clock();
/* Initializing */
MPI_Init (&argc, &argv);
Run Code Online (Sandbox Code Playgroud)
然后在我的代码结束时,我有:
MPI_Finalize();
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
printf("\n\nTIME: %f SECONDS\n\n", time_spent);
Run Code Online (Sandbox Code Playgroud)