728x90
반응형
파이썬으로 타임 스탬프를 처음 접했다.
타임스탬프는 1970년 1월 1일 00시를 기준으로 현재까지 흘러온 '초'를 나타내는 숫자이다.
현재시간을 구하기 위해서 이 타임스탬프를 많이 이용하는데, 조금 애를 먹었다.
- 코드 테스트 시간 : 22시 50분
1 2 3 4 5 | Import time ttime = time.time() // ttime에 전체 '초'를 넣는다. tmtime = ttime/60 // tmtime에 전체 '분'을 넣는다. thtime = tmtime/60 // thtime에 전체 '시'를 넣는다. | cs |
먼저 현재 '분'을 구해야 한다.
어떻게 해야 할까?
바로 '나머지'를 활용하는 방법이 있다.
전체 '분'을 나타내는 tmtime에서 60을 나눠 전체 '시간'을 구한 thtime.
thtime은 60으로 나눠진 '몫'이다.
이 '몫'은 '시간'만을 나타내기 때문에 나머지인 '분'과 '초'를 버려버린다.
그래서 '분'을 구할때는 다음과 같이 %를 이용해 계산한다.
1 | nmtime = tmtime%60 | cs |
'몫'인 '시간'을 버리고 나머지인 '분'만 취하는 것이다.
나타난 값을 보면 '50.12345678'
이런 방식을 활용해서 '시간'도 구할 수 있는데, 약간의 트릭이 존재한다.
위와같은 방법으로 '시간'을 구하게 되면 다음과 같이 할 수 있다.
1 | nhtime = thtime%24 // 전체 '시간'을 전체'일'로 바꾸려면 24를 나눠야 한다. | cs |
이때 nhtime의 값을 보면 다음과 같이 나온다.
'13.12345678'
"어라? 계산이 잘못되었나?"
이 생각이 드는 순간, 당신은 트릭에 빠진것이다.
가장 처음에 했던 말을 떠올려보자.
['타임스탬프'는 1970년 1월 1일 00시(00:00 표준시) 를 기준으로 한다.]
이 말을 보고 떠오르는 것이 있을것이다.
시차!
그렇다. 우리는 대한민국, +09:00 에 살고있다.
이제 해결이 되었는가?
값으로 나온 13에 +9를 하게되면 22(테스트시간 22시)가 되면서 의문이 풀릴 것이다.
728x90
반응형
댓글