2012-02-20 1 views
0

나는 이벤트의 지속 시간을 저장할 클래스를 만들었다. 보시다시피 각 필드를 만들었지 만 초 단위로 저장 한 다음 시간, 분, 초를 계산하는 것이 더 낫겠습니까? 내가 만든 add 메서드는 더 간단 할 것이지만 단점이 있습니까? 그것은 훨씬 더 좋을 것이다시간을 처리하는 커스텀 자바 클래스 생성하기

public class Duration { 

    private int hours; 
    private int minutes; 
    private int seconds; 

    public Duration(int hours, int minutes, int seconds) { 
     setHours(hours); 
     setMinutes(minutes); 
     setSeconds(seconds); 
    } 

    public int getHours() { 
     return hours; 
    } 

    public void setHours(int hours) { 
     this.hours = hours; 
    } 

    public int getMinutes() { 
     return minutes; 
    } 

    public void setMinutes(int minutes) { 
     this.minutes = minutes; 
    } 

    public int getSeconds() { 
     return seconds; 
    } 

    public void setSeconds(int seconds) { 
     this.seconds = seconds; 
    } 

    public void add(Duration duration) { 

    } 
} 
+0

이 숙제가 있습니까? 외부 라이브러리를 사용하지 않아도됩니까? – talnicolas

+0

http://stackoverflow.com/questions/439903/java-equivalent-to-cs-timespan-이 코드를 직접 작성하지 않아도됩니다. – Matthias

+0

초만 저장하고 필요시 시간과 분을 계산하는 것이 좋습니다. 그렇지 않으면 산술 연산이 더 어려워집니다. 또한 범위 유효성 검사가 필요합니다. – SLaks

답변

4

Joda로, 같은를 기존 라이브러리를 사용합니다.

+0

필요한 것은 단지 시간 (hh : mm : ss)뿐입니다. 이벤트의 길이와 같습니다. 나는 년, 시간대 등을 신경 쓰지 않습니다. – user626912

+0

'LocalTime' 클래스를 확인하십시오. http://joda-time.sourceforge.net/api-release/org/joda/time/LocalTime .html - 시간 처리를 구현하거나 응용 프로그램의 실제 논리에 실제로 시간을 투자 하시겠습니까? – Peter

0

java.util.Date 클래스를 고려하십시오.

트릭은 Date은 1970 년 1 월 1 일 오전 12시 (GMT)부터 경과 된 밀리 초 수로 표현 된 타임 스탬프를 래핑한다는 것입니다. 이 필드는 getTime() 메소드로 얻을 수 있습니다.

이벤트의 지속 시간을 얻으려면 두 개의 Date 개체 (시작 시간과 종료 시간)를 만든 다음 두 개의 시간 스탬프 (단순히 long 값임)를 뺍니다. 당신이 당신의 분배에 추가 항아리를 추가 할 않는

long milliseconds = elapsedInMilliseconds % 1000; 
    long seconds = elapsedInMilliseconds/1000 % 60; 
    long minutes = elapsedInMilliseconds/(60 * 1000) % 60; 
    long hours = elapsedInMilliseconds/(60 * 60 * 1000) % 24; 
    long days = elapsedInMilliseconds/(24 * 60 * 60 * 1000); 
0

것은, 그냥 자바를 사용합니다 :

그렇다면, 당신은 뭔가를 할 수있는 등 시간, 분, 초, 측면에서 포맷하기 . 일정. 달력.

관련 문제