2014-12-05 2 views
0

을 빼면 :나는 다음과 같은 문제에있어 시간

나는 "hourOne"와 Calendar 형의 "hourTwo"[] []라는 두 변수를 가지고있다. 날짜의 기간은 두 열, "시작"및 "끝"에 저장됩니다. 나는 어떻게이 기간을 뺄 수

hourThree[0][0] = "07:00" 
hourThree[0][1] = "08:00" 
hourThree[1][0] = "12:00" 
hourThree[1][1] = "13:00" 

있을 것이다 hourThree에서이

hourOne[0][0] = "08:00" 
hourOne[0][1] = "12:00" 

hourTwo[0][0] = "07:00" 
hourTwo[0][1] = "13:00" 

같은 다른 변수의 차이 및 저장을 (hourThree 예를 들어) 찾을 수있는 시간을 빼기가 필요?

세부 사항 :이 경우 JodaTime API를 사용할 수없고 변수에 정의 된 행 수가 없습니다 (다른 행보다 많은 행이있을 수 있음).

+1

@bhdrkn 질문에서 마지막 문장을 읽으시겠습니까? – user902383

답변

0

사용 SimpleDateFormat에

@ControllAltDel에 의해 전달 솔루션으로
SimpleDateFormat sdf = new SimpleDateFormat("kk:mm"); 
ParsePosition idx = new ParsePostion(0); 
long time = sdf.parse(hourOne[0][0], idx).getTime() - sdf.parse(hourOne[0][1], idx).getTime(); 
+0

하지만 이것으로 (예를 들어 1 시간) 시간이 걸릴 것입니다. 나는 예제에서와 같이 마침표를 빼고 왼쪽 마침표를 세 번째 변수에 넣고 싶습니다. –

0

강력이

static String sub (String a,String b){ 
    String[] tmp = a.split(":"); 
    int ah = Integer.parseInt(tmp[0]); 
    int am = Integer.parseInt(tmp[1]); 
    tmp = b.split(":"); 
    int bh = Integer.parseInt(tmp[0]); 
    int bm = Integer.parseInt(tmp[1]); 

    int cm = am-bm; 
    int reminder = 0; 

    cm=cm%60; 
    if (cm<0) { 
     reminder--; 
      cm+=60; 
    } 

    int ch = ah-bh+reminder; 
    return ch+":"+cm; 
} 
에 따라, 당신은 DATEFORMAT 놀고 싶어 해달라고하면 , 당신은 시간 arthmetics을위한 간단한 방법을 구현할 수, 추천