기가초

기가초

쉬움

소개

우리가 시간을 재는 방식은 좀 엉망이에요. 1분은 60초이고, 1시간은 60분이에요. 이것은 60을 수 체계의 기반으로 삼았던 고대 바빌로니아에서 비롯되었어요. 하루는 24시간이고, 일주일은 7일이며, 한 달은 며칠일까요? 글쎄요, 한 달의 날짜 수는 어느 달인지뿐만 아니라 사는 나라에서 어떤 종류의 달력을 사용하는지에 따라서도 달라져요.

그렇다면 시간 간격을 표현할 때 초만 사용하면 어떨까요? 그러면 많은 수의 초를 훨씬 알아보기 쉬운 단위로 적기 위해 미터법 접두사를 사용할 수 있어요.

  • 요리 레시피에서 브라우니를 오븐에 2킬로초(2,000초) 동안 구우라고 알려줄 수도 있어요.
  • 어쩌면 가족과 함께 2메가초(200만 초) 동안 이국적인 곳으로 여행을 떠날 수도 있어요.
  • 그리고 배우자와 10억 초 동안 결혼 생활을 했다면, 결혼 1기가초 기념일을 축하하게 될 거예요.
Note

언젠가 화성이나 다른 행성을 개척하게 된다면, 시간을 재는 일은 훨씬 더 엉망이 될 거예요. 누군가 "year"라고 말할 때 지구의 1년을 뜻하는 걸까요, 아니면 화성의 1년을 뜻하는 걸까요?

이 연습 문제의 아이디어는 작가 Vernor Vinge의 SF 소설 "A Deepness in the Sky"에서 나왔어요. 소설에서 작가는 미터법을 시간 측정의 기반으로 사용해요.

지침

특정 날짜로부터 기가초가 하나 지난 뒤의 날짜와 시간을 구하는 것이 과제예요.

기가초는 10억 초예요. 1 뒤에 0이 아홉 개 붙은 수죠.

2015년 1월 24일 22:00(오후 10시) 에 태어났다면, 기가초가 되는 날은 2046년 10월 2일 23:46:40(오후 11시 46분 40초) 예요.

참고

Kernel-Chronology 패키지에는 날짜와 시간과 관련된 유용한 클래스와 프로토콜이 많이 있어요. Date와 Time 클래스에는 유용한 출력 메서드가 있어서, 이를 활용해 나만의 ISO8601 날짜와 시간 표현을 만들 수 있어요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Pharo Exercism

기가초 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Pharo 트랙을 연습 문제 50개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.