마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

currentTimeMillis() 함수 사용해서 구간 시간 구하고 싶은데요

+1 추천
500m 이동마다 걸리는 시간 구하고 싶습니다.

처음은 a=currentTimeMillis 해서 구하고

500m  넘으면 b =currentTimeMillis 해서 구했는데요.

b-a해서 구했는데요.

그다음 500m 갔을 때는 어떻게 구하나요?..a,b 값이 바뀌나요?

알고리즘 좀 갈켜 주세요 ㅜㅜ
강자닌 (130 포인트) 님이 2013년 12월 19일 질문

1개의 답변

0 추천

같은 종류의 정보가 누적되야할 때는 배열을 사용하시는게 좋습니다.

long before = System.currentTimeMillis(); // 멤버 또는 전역 선언
ArrayList<Long> Arr = new ArrayList<Long>(); // 멤버 또는 전역 선언
 
// 체크 할 때 마다 반복
long after = System.currentTimeMillis();
Arr.add(after - before);  // 경과된 시간을 Arr 에 추가
before = after; // 현재 체크된 시간을 시작 시간에 치환
 
이런식으로 하면 Arr 어레이리스트에 계속 누적이 되고,
Arr.get(인덱스); 를 통해 원하는 위치의 값을 불러올 수 있습니다.
adb (830 포인트) 님이 2013년 12월 19일 답변
onLocationChanged 에서 500m 경과 할때 마다 시간의 차이를
0.5/시간차이 = 속도. 이렇거 구하고 싶습니다. 만약에 인덱스에 들어가면, 인덱스값 뽑는방법좀요. ㅜㅜ 초보자라...
Arr.get(index);
0 부터 시작하기 때문에
만약 맨 첫번째 값을 얻고 싶을 때는
Arr.get(0); 으로 얻으시면 됩니다.
죄송한데, 하나만 더 질문이요..
어플리케이션이 이동 하면서 500m 마다 평균 속도를 계산하기 위해서 시간간격이 필요한건데요. 어플에서 자동으로 뽑으려면 어떤식으로 뽑아야되나요.. ㅜㅜ
지금 Arr 배열에 추가하는게 시간 간격 아닌가요?
뭘 말하시는건지 모르겠네요;
뭘 자동으로 어디에 뽑는다는건지;
음. 그러니까 전체적인 거는  차량이 이동시 500m 가는데 걸리는 시간을 구해서 s/t=v로 평균 속도를 구하는 것입니다. 이게 500m마다 이전 시간과 이후시간의 차이로 500m마다 평균 속도를 표시해야 되는데여. 만약에 arr 배열에서 인덱스를 어떻게 뽑아와서 이후시간과- 인덱스에 저장된 시간을 빼서 간격을 구하는지 그게 질문입니다.
int ColLen = Arr.size();
        long sum=0;
        for(int i = 0; i < ColLen; i++){
            sum += Arr.get(i);
        }
        long avg = (sum / ColLen);

이러면 평균이 나옵니다.
...