괴발개발 성장기

Study/Go 언어

[Golang] 만 나이 구하는 코드

지니유 2023. 9. 12. 17:28
반응형

# 배경

법적 대리인이 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

 

만 나이 구하기 · Issue #82 · YooGenie/go-study

 

github.com

 

반응형