time.Time 값을 n분 간격으로 설정합니다.

1731 단어 GoTipstech

개시하다


이번이 첫 투고다.
인풋으로 얻은 지식을 출력하는 것도 중요하다고 생각해 이번 기사를 쓰기로 했다.
평소에 저는 iOS/Android 응용 엔지니어로서 주로 Swift와 Kottlin에 썼지만 약간 발본성이 있는 물건으로 개인적으로 만든 물건은 Go를 사용합니다.

본론으로 넘어가다.


그럼 본론입니다.
평상시에 일하는 약간의 잡무를 가볍게 하고 싶다!그래서 여가 시간에 소박하게 지령선 도구를 만들 때.
이번에 우리는 업무 시간의 관리/각 임무에 걸린 시간 등을 하나하나 통계하여 1일 업무가 마지막으로 일간지에 실린 텍스트를 자동으로 생성하는 도구를 만들었다.
그때 우리 회사는 근무시간/종료시간을 15분 단위로 계산했는데 갑자기 time.Time 값의 점수에 15분 간격의 값이 있는지, 정식 문서에 딱 맞는 것이 있는지 조사했다.
사용 방법은Truncate()이다.
https://pkg.go.dev/[email protected]#Time.Truncate

소스 코드


출력 예


$ go run truncate_time.go 9:14
9:14 --(truncate)--> 9:00

$ go run truncate_time.go 9:15
9:15 --(truncate)--> 9:15

$ go run truncate_time.go 9:29
9:29 --(truncate)--> 9:15

$ go run truncate_time.go 9:30
9:30 --(truncate)--> 9:30
time.Time 유형의 Truncate() 방법의 매개 변수는 15 * time.Minute로 지정됩니다.
이렇게 되면 15분 간격으로 할 수 있다.
※ 처음엔 직접 작성Truncate()한 처리였는데, 공식 문서를 자세히 보니 엑시플에 사용 예가 잘 적혀 있더군요...

최후


Go 언어는 간단한 언어 체계로 공식 문서가 충실하고 학습이 편리하며 바로 성과를 낼 수 있다는 것이 Go 언어의 장점이다.
또 최근 각종 클라우드(AWS나 GCP 등)의 서버가 없는 서비스에도 대응하는 서비스가 많아 웹 시스템에서도 활용할 수 있어 좋네요!
나는 이것이 매우 즐겁게 쓰여 있는 언어 중의 하나라고 생각한다.
또한 go build도 실행 가능한 이진법으로 사용할 수 있기 때문에 지령 도구만 원하는 사람에게 직접 나누어 줄 수 있다.
그냥 너무 간단해서 간지러운 데서 손이 안 닿아요...!이런 말이 있으니 여기가 길고 짧은 느낌이죠.
요즘 Rust도 기세등등하고 저도 배우고 싶어서 이 기회를 틈타 Rust로 도구를 만들어 Go와 비교하고 싶어요.
제 본업은 iOS/Android 애플리케이션 엔지니어이기 때문에 Kotlin과 Swift의 Tips 등도 쓸 수 있습니다...

좋은 웹페이지 즐겨찾기