숫자에 약한 나라서..
스스로의 방식으로 이해해보고자 하여 블로그에 포스팅한다..
우선
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일) 으로 나눴으니 밀리초는 역시 일단위로 나올것이다.
마치며,
이게 뭐라고.. 이렇게 오랜시간 분석했는지 모르겠다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 그래도.. 이해했으니.. 난 만족한다.