我想创建一个递增的第二个计时器,如秒表.
所以我希望能够以格式00:01显示秒和分钟递增...
谷歌只提供24小时时钟示例,我想知道是否有人可以让我开始使用我想要做的示例或教程?
编辑:
这是我到目前为止在Android中使用Chronometer的原因
在onCreate()
secondsT = 0;
elapsedTimeBeforePause = 0;
stopWatch.start();
startTime = SystemClock.elapsedRealtime();
stopWatch.setBase(elapsedTimeBeforePause);
stopWatch.setOnChronometerTickListener(new OnChronometerTickListener(){
@Override
public void onChronometerTick(Chronometer arg0) {
//countUp is a long declared earlier
secondsT = (SystemClock.elapsedRealtime() - arg0.getBase()) / 1000;
String asText = (secondsT / 60) + ":" + (secondsT % 60);
//textGoesHere is a TextView
((TextView)findViewById(R.id.time)).setText(asText);
}
});
Run Code Online (Sandbox Code Playgroud)
在onDestroy()
@Override
public void onDestroy() {
inCall = false;
elapsedTimeBeforePause = SystemClock.elapsedRealtime() - stopWatch.getBase();
super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)
上面的编译和运行但TextView永远不会增加,它始终保持为0,任何人都可以看到为什么?
我有这样的事情:
clock_t start, end;
start=clock();
something_else();
end=clock();
printf("\nClock cycles are: %d - %d\n",start,end);
Run Code Online (Sandbox Code Playgroud)
我总是得到一个输出"时钟周期是:0 - 0"
知道为什么会这样吗?
(只是为了给出一些细节,something_else()函数使用montgomery表示执行从左到右的求幂,而且我不确定something_else()函数确实需要一些不可忽略的时间.)
这是在Linux上.uname -a的结果是:
Linux snowy.*****.ac.uk 2.6.32-71.el6.x86_64 #1 SMP Fri May 20 03:51:51 BST 2011 x86_64 x86_64 x86_64 GNU/Linux
可以在以下网址阅读:
https://svn.boost.org/trac/boost/ticket/3504
一个deadline_timer定期超时并使用deadline_timer :: expires_at()(如Boost Timer教程中的示例,第3个示例)实现,如果修改系统时间可能会失败(例如,使用date命令,如果您的操作系统是Linux).
现在使用Boost有一种简单而合适的方式来执行此操作吗?我不想使用deadline_timer :: expires_from_now()因为我可以验证它不如"手动"更新到期时间那么准确.
作为一个时间解决方案,我决定在设置新的expires_at值之前,计算now()和expires_at()之间的时间段.如果它超过周期性延迟的两倍,那么我特别使用expires_from_now()来重新同步新的绝对时间.
我正在努力解决这个问题,但我仍然在努力理解解决这个问题的逻辑.
hour degree = 360 / 12 = 30
minutes degree = 360 / 12 / 60 = 0.5
Run Code Online (Sandbox Code Playgroud)
所以,根据这个,我想我可以在python中制定以下函数:
def clockangles(hour, min):
return (hour * 30) + (min * 0.5)
Run Code Online (Sandbox Code Playgroud)
对于小时,它工作正常,因为它似乎有1 = 1映射.但是到目前为止,至少有一个问题.当它为0分钟时,分针指向12.
例如:
晚上7点:双手指向晚上7点,指针指向12点
如何正确计算分钟数?请帮我理解配方.
编辑:例如,如果我在晚上7点调用上面的函数,例如clockangles(7,0),我得到值210.但是,根据此链接,7:00的角度为150
我已经写了一个实用工具,通过蓝牙与TomTom GPS手表交谈,并且我试图让它作为一个即时可待的背景守护程序运行良好.
程序定期与GPS设备通信,然后暂时与sleeps 通信,直到再次需要它为止.
我注意到sleep()与系统挂起奇怪地交互:当我进入系统挂起(运行Linux 3.16.0内核的笔记本电脑)然后唤醒计算机时,sleep似乎没有注意到暂停时间.例如,请执行以下操作sleep.c:
#include <time.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc, char**argv)
{
time_t t=time(NULL);
printf("sleep at: %s", ctime(&t));
sleep(atoi(argv[1]));
t=time(NULL);
printf("wake at: %s", ctime(&t));
}
dlenski@dlenski-ultra:~$
Run Code Online (Sandbox Code Playgroud)
中途编译,运行和睡眠;
$ gcc sleep.c -o sleep
$ ./sleep 30
sleep at: Fri Aug 21 21:05:36 2015
<suspend computer for 17 seconds>
wake at: Fri Aug 21 21:06:23 2015
Run Code Online (Sandbox Code Playgroud)
有没有一种正确的方法来暂停程序执行的方式是时钟 - 时间 -意识而不是系统正常运行时间 -意识到? …
我希望在我的程序中实现一个时钟,以便在程序运行时显示日期和时间.我已经研究了getCurrentTime()方法和Timers,但它们似乎没有做我想做的事情.
问题是我可以在程序加载时得到当前时间,但它永远不会更新.任何有待观察的建议都将不胜感激!
从API级别9(2.3)开始,您可以使用intent设置警报:
Intent i = new Intent(AlarmClock.ACTION_SET_ALARM);
i.putExtra(AlarmClock.EXTRA_HOUR, 9);
i.putExtra(AlarmClock.EXTRA_MINUTES, 37);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
无论如何以较低的API级别以类似的方式设置警报(未记录的API?)?
此外,如果有人知道任何类似的方法非库存警报器(如此处列出的 IE HTC闹钟,Moto模糊闹钟等......)我将非常感激.
我目前正在尝试了解Lamport时间戳.考虑两个过程P1(产生事件a1,a2,...)和P2(产生事件b1,b2,......).设C(e)表示与事件e相关的Lamport时间戳.我为维基百科关于Lamport时间戳的文章中描述的每个事件创建了时间戳:

根据维基百科,以下关系适用于所有事件e1,e2:
如果e1发生在e2之前,那么C(e1)<C(e2).
我们来看看a1和b2.显然a1发生在b2之前,并且由于 C(a1)= 1且C(b2)= 3,因此关系成立:C(a1)<C(b2).
问题:对于b3和a3,这种关系不适用.显然,b3发生在a3之前.但是,C(b3)= 4,C(a3)= 3.因此,C(B3)<C(A3),并不能适用.
我误解了什么?非常感谢帮助!
要求是必须检测用户是否手动更改了 iPhone 的系统时间。为此,我使用了
NSNotificationCenter.defaultCenter().addObserver(self, selector: "timeChangedNotification:", name: NSSystemClockDidChangeNotification, object: nil)
Run Code Online (Sandbox Code Playgroud)
和
func timeChangedNotification(notification:NSNotification){
println("Device time has been changed...")
}
Run Code Online (Sandbox Code Playgroud)
但没有得到结果。另外,如果这个时间没有改变意味着它是由网络提供的自动时间,那么必须与服务器时间进行比较。如何做到这一点?请给予同样的帮助。
我有一些代码试图确定代码块的执行时间.
#include <time.h>
#include <stdio.h>
int main()
{
clock_t start_t, end_t, total_t;
int i;
start_t = clock(); //clock start
printf("Starting of the program, start_t = %ld\n", start_t);
printf("Going to scan a big loop, start_t = %ld\n", start_t);
for(i=0; i< 10000000; i++) //trying to determine execution time of this block
{
}
end_t = clock(); //clock stopped
printf("End of the big loop, end_t = %ld\n", end_t);
total_t = (long int)(end_t - start_t);
printf("Total time taken by CPU: %lu\n", total_t );
return(0); …Run Code Online (Sandbox Code Playgroud)