반응형
# 배경
법적 대리인이 19세 미만이면 안돼서 만 나이를 구해서 체크 했다.
# 코드
func GetAge(birthDate string) int64 {
birthMonth, _ := time.Parse("01", birthDate[4:6])
birthDay, _ := time.Parse("02", birthDate[7:])
birthYear, _ := strconv.Atoi(birthDate[:4])
now := time.Now()
age := now.Year() - birthYear
// 생일이 지나지 않았을 경우 나이에서 1을 빼줌
if now.Month() < birthMonth.Month() || (now.Month() == birthMonth.Month() && now.Day() < birthDay.Day()) {
age--
}
return int64(age)
}
- 생년월일 8자리를 입력한다.
- 생년월일을 년, 월, 일로 나눈다.
- 현재연도에 태어난 연도를 뺀다.
- 생일이 지났는지 체크하고 안 지났으면 1을 빼준다.
- 만 나이를 리턴해준다.
# 이슈 참고
https://github.com/YooGenie/go-study/issues/82
반응형
'Study > Go 언어' 카테고리의 다른 글
[Golang] 14세 미만 체크하는 코드 (0) | 2023.09.11 |
---|---|
[Golang] 스웨거(Swagger) 사용하기 (0) | 2023.09.04 |
[Golang] Xorm에 AllCols() 이걸 사용할 때 bool 타입은 업데이트가 안된다. (0) | 2023.08.02 |
[Golang] interface{} => struct 변환하기 (0) | 2023.07.22 |
[Golang] 슬랙(Slack)으로 메시지 보내기 (0) | 2023.07.14 |