0
나는 임의의 시간을 설정하는 논리를 파악하고 그 시간을 다른 속도 (예 : .5x 또는 4x 실시간)로 "재생"하도록하려고합니다.Java : 속도 향상 및 감속 시간
import java.util.Calendar;
public class Clock {
long delta;
private float speed = 1f;
public Clock(Calendar startingTime) {
delta = System.currentTimeMillis()-startingTime.getTimeInMillis();
}
private Calendar adjustedTime() {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis()-delta);
return cal;
}
public void setPlaybackSpeed(float speed){
this.speed = speed;
}
public static void main(String[] args){
Calendar calendar = Calendar.getInstance();
calendar.set(2010, 4, 4, 4, 4, 4);
Clock clock = new Clock(calendar);
while(true){
System.out.println(clock.adjustedTime().getTime());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
을 나는 "속도"속성이 논리에 사용되는 필요가있는 알아내는 데 문제 : 다음
정상 속도로 시간을 재생합니다 내가 지금까지 가지고있는 논리이다.
실시간 및 사용자 정의 시계 간의 관계는 간단합니다. 즉, 현실 세계를 통과 한 매 초마다, 당신의 시계는'속도'초를 틱합니다. 'T_clock = 속도 * T_real'. 나머지는 시계의 인터페이스를 정의하는 방법입니다. –
밀리 초 타이밍 만 있으면 캘린더가 너무 비쌉니다. 나는 long과'System.currentTimeMillis()'를 사용할 것이다. –