我的目标是加快或减慢时间。
注意:双引号中的所有时间单位(“一段时间”)都不是真正的时间单位。它们是时间的单位时间。
我想制作一个与普通时钟完全相同的时钟,除了250毫秒= 1“秒”,60“秒”或更确切地说250 * 60毫秒= 1分钟等。我也想成为能够更改此时钟以使用任何其他毫秒值作为1秒,例如1000(正常,现实世界时间),6000毫秒(即6秒= 1“秒”)等。
是否有可靠的API或代码来执行此操作?如果没有,那我该怎么办?
我在SO上看到了一个问题,但没有得到任何关于如何实现这样一个时钟的代码,API或建议,或者这个时钟可能存在的问题 - Java - Creating an Internal Clock
该帖子谈到了callback,但我不知道它是否是制作钟表的最好和最无问题的方法。
答案 0 :(得分:1)
显然创建了一个类MyClock.java
。在实例化时保存当前的系统时间。实现一个方法long getTime()
,该方法从现在开始就会有所不同,并且会在实例化时节省时间。然后在给定的miliiseconds(乘以4)上应用delatation ...休息是你的。
答案 1 :(得分:1)
一种方法是将您的时间基于系统时钟,例如:
class CustomClock()
{
private final long offset;
public CustomClock(){
offset = System.currentTimeMillis();
}
public long getSeconds()
{
return ((System.currentTimeMillis() - offset) / 250);
}
/* ... */
}
然后你的代码看起来像
CustomClock clock = new CustomClock();
clock.getSeconds(); // Returns the number of "seconds" since you created
// the CustomClock object.