프로그래밍

밀리초 시,분,초 계산 이해하기.

삐제제 2021. 1. 16. 04:11

숫자에 약한 나라서.. 

 

스스로의 방식으로 이해해보고자 하여 블로그에 포스팅한다..

 

우선

1000 밀리초 = 1초

 

1일은 1000 * 60 * 60 * 24 = 86,400,000 밀리초

1시간은 1000 * 60 * 60 = 3,600,000 밀리초

1분은 1000 * 60 = 60000밀리초

1초는 1000 밀리초

 

이다.

 

그런데 이걸 응용 하여 우리가 실생활에 사용하는 일,시,분,초 단위를 구하려면 어떻게 해야할까?

 

계산할 날의 밀리초 / (1000 * 60 * 60 * 24) = 일

(계산할 날의 밀리초 / (1000 * 60 * 60)) % 24 = 시

(계산할 날의 밀리초 / (1000 * 60)) % 60 = 분

(계산할 날의 밀리초 / 1000) % 60 = 초

 

이다.

 

근데 숫자에 약한 나는 이걸 보고도 바로 이해가 되지않았다..

 

우선 계산할 날의 밀리초 / 1000 * 60 * 60 * 24 는 왜 일단위일까?

 

우선 계산할 날의 밀리초를 하루로 잡고 해보자 ( 86,400,000 )

 

86,400,000 / 86,400,000 = 1일

 

그래.. 여기까진 이해하기 쉬웠다..

 

 


 

다음단계로, 우선 (계산할 날의 밀리초 / (1000 * 60 * 60)) 만 계산해보자.

 

* 1000 = 1초니까, 1000 *60 은 1분 , 1000 * 60 * 60 은 1시간 *

 

86,400,000 / 3,600,000 = 24

 

24가 나온다. 하루를 시로 나눈값이니 당연하다.

 

근데 만약 여기서 우리가 계산할 날의 밀리초가 깔끔하게 떨어지는 하루 단위가 아니라면?

 

이때 % 24가 진가를 발휘하는것이다!!!! 

 

만약 (계산할 날의 밀리초 / 3,600,000 ) 값이 24 이상이 나왔다? 만약 25가나오면?? 하루를 시로 나눴는데 25가 나왔다!!

 

여기서 % 24 를 해주면? 나머지로 1이 나온다.

 

그러면 이 말은? 1일1시간 이란뜻이다!!

 

그렇다 나머지로 남은 1시간을 떨궈내준것이다!! 난 방금 이 글을 포스팅하면서 이해했다.. ㅋ

 

 


 

자 그럼 다음파트.. "분"이다.

 

(계산할 날의 밀리초 / (1000 * 60)) 을 계산해보자. 마찬가지로 계산할 날의 밀리초 (86,400,000)이다.

* 1000 = 1초, 1000 * 60 은 1분

 

86,400,000 / 60000 = 1440

 

1440이 나온다.

 

근데 하다보니 이렇게 계산하는건 내 머리론 의미가 없다.

 

좀 더 쉽게 생각해보자.

 

1일은 1000 * 60 * 60 * 24 = 86,400,000 밀리초

1시간은 1000 * 60 * 60 = 3,600,000 밀리초

1분은 1000 * 60 = 60000밀리초

1초는 1000 밀리초

 

계산할 날의 밀리초 / (1000 * 60 * 60 * 24) = 일

(계산할 날의 밀리초 / (1000 * 60 * 60)) % 24 = 시

(계산할 날의 밀리초 / (1000 * 60)) % 60 = 분

(계산할 날의 밀리초 / 1000) % 60 = 초

 

이것은 밀리초 단위.

 

초 단위로 계산하는법은?

 

1일은? 1 * 60 * 60 * 24 = 86400 초

1시간은? 1 * 60 * 60 * 60 = 3600 초

1분은? 1 * 60 = 60초

1초는? 1

 

 

계산할 초 / 1 * 60 * 60 * 24 = 일

(계산할 초 /  (1 * 60)) * 60 = 시

(계산할 초 / (1 * 60 )) % 60 = 분

계산할 초 / 1 % 60 = 초

 

어떤가.. 그냥 뒤에 0 세개 차이처럼 느껴지지않는가..? ( 시 부분은 조금 다른것 같다. )

 

어쨌든 형태는 비슷하다.

 

 

1000 = 1초

초의 단위는 60까지

계산할 날의 밀리초 / 1000 를 해주게되면 1000(1초)으로 나눴으니 밀리초가 초 단위로 나올것이다. 따라서 60으로 나눈 나머지를 구하면 60을 넘지않는 초 단위가나올것이다.

 

1000 * 60 = 1분

분의 단위는 60까지

(계산할 날의 밀리초 / (1000 * 60)) 을 해주게되면 60000(1분) 으로 나눴으니 밀리초가 분 단위로 나오게 되는것이고, 따라서 60으로 나눈 나머지를 구하면 60을 넘지않는 분 단위가 나올것이다.

 

1000 * 60 * 60 = 1시간

시간의 단위는 24까지

(계산할 날의 밀리초 / (1000 * 60 * 60)) 를 해주게되면, 3600000(1시간) 으로 나눴으니,밀리초는 시간단위로 나올것이고, 따라서 24로 나눈 나머지를 구하면 24를 넘지않는 시 단위로 나올것이다.

 

 

1000 * 60 * 60 * 24 = 1일

 

계산할 날의 밀리초 / (1000 * 60 * 60 * 24) 를 해주게되면, 86400000(1일) 으로 나눴으니 밀리초는 역시 일단위로 나올것이다.

 

 


마치며,

 

이게 뭐라고.. 이렇게 오랜시간 분석했는지 모르겠다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 그래도.. 이해했으니.. 난 만족한다.