2014-12-11 4 views
-1

좋아요. 그렇기 때문에 나는 여전히 새로운 메서드를 사용하고 있습니다. 그래서 이것이 허풍에서 벗어난다면 용서해주십시오. 나는 startTime과 endTime이라는 두 개의 private 데이터 필드를 가진 stop watch 클래스 여야 만하는 숙제 문제가있다. startTime을 현재 시간으로 재설정 한 다음 endTime을 현재 시간으로 재설정하는 stop() 메서드가 필요합니다. getElapsed time 메서드가 필요하고 값을 반환합니다.StopWatch 메서드가있는 클래스

public class stopWatch { 
    private double startTime; 
    private double endTime; 

public static void main(String[]args) { 

} 

public stopWatch(double startTime) { 
    startTime = System.currentTimeMillis(); 
} 

public void start() { 
    startTime = System.currentTimeMillis(); 

} 

public void stop() { 
    endTime = System.currentTimeMillis(); 
} 

public static void getElapsedTime(double startTime, double endTime){ 
    stop() - start() 

} 
} 

이 사람이 나에게 올바른 방향으로 단계를 보내 주시기 바랍니다 수 : 이것은 내가 지금까지 가지고 무엇인가? 나는 내가 정지 된 시간에서 시작 시간을 빼고 경과 된 시간으로 되돌아 갈 필요가 있음을 안다. 제대로 설정하는 방법을 모르겠다.

+1

더 정확히 말하면, 이것은 도움 포럼이 아닌 Q & A입니다. 당신이 한 일과 정확히 어디에서 문제가 발생했는지 말해주십시오. – for3st

답변

1

커플 포인트.

  • startTime을하고 endTime- 사용자는
  • 생성자는 아마 인수를 안 갈망해야합니다.
  • 시작은 아마도, 인스턴스 메서드해야
  • getElapsedTime을 -1되지 인수를, long을 반환하고 endTime - startTime
  • , 그것은 기본에, 작업 표시 스톱워치를 작성, 타이머를 시작하기 위해 돌아 endTime을 설정해야 Thread.sleep (언젠가)를 호출하고, stop을 호출하고, getElapsed를 출력한다.
+0

"생성자가 인수를하지 않아야합니다." 그들은 그가 작성한 코드로 그냥 사라지게 될 것이므로 분명히해서는 안됩니다. –

0

정확하게 똑같은 것을 만들어야했습니다. 바탕 화면에서 실행되는 간단한 Java 스톱워치가 필요했습니다. 이것은 Stopwatch 클래스의 코드입니다. 나는 당신이 스톱워치를 시작한 이래로 얼마나 많은 밀리 세컨드를 보여줄지 긴 숫자를 리턴하지 않도록 포맷팅을 추가했다. 밀리 초가 아닌 초, 분, 시간과 같은 인간에게 더 의미있는 결과를 얻기를 원한다고 가정합니다.

import java.text.DecimalFormat; 

public class Stopwatch 
{ 
    // variables 
    private long startTime; 
    DecimalFormat twoDigits = new DecimalFormat("00");  // These help me return strings in the correct format 
    DecimalFormat threeDigits = new DecimalFormat("000"); // These help me return strings in the correct format 

    // Constructor 
    Stopwatch() 
    { 
    } 

    void start() 
    { 
     startTime = System.currentTimeMillis(); 
    } 

    public long getStartTime() 
    { 
     return startTime; 
    } 

    public long getElapsedTime() 
    { 
     return System.currentTimeMillis() - startTime; 
    } 

    public String getElapsedTimeString() 
    { 
     return (String.valueOf(twoDigits.format(getHours())) + ":" + String.valueOf(twoDigits.format(getMinutes())) + ":" + String.valueOf(twoDigits.format(getSeconds())) + "." + String.valueOf(threeDigits.format(getMilliSeconds()))); 
    } 

    public short getMilliSeconds() 
    { 
     return (short)((System.currentTimeMillis() - startTime) % 1000); 
    } 

    public byte getSeconds() 
    { 
     return (byte)(((System.currentTimeMillis() - startTime)/1000) % 60); 
    } 

    public byte getMinutes() 
    { 
     return (byte)(((System.currentTimeMillis() - startTime)/60000) % 60); 
    } 
    public long getHours() 
    { 
     return (System.currentTimeMillis() - startTime)/3600000; 
    } 
}