diff --git a/time.go b/time.go index f0a2e3c..5e76c72 100644 --- a/time.go +++ b/time.go @@ -99,3 +99,28 @@ func DatetimeToUnix(value string) int64 { return reserveTime.Unix() } + +// 具体时间戳转年龄 +func CalculateAge(birthTimestamp int64) int { + // 将时间戳转换为 time.Time 对象 + birthTime := time.Unix(birthTimestamp, 0) + currentTime := time.Now() + + // 获取出生和当前的年、月、日 + birthYear := birthTime.Year() + currentYear := currentTime.Year() + birthMonth := int(birthTime.Month()) + currentMonth := int(currentTime.Month()) + birthDay := birthTime.Day() + currentDay := currentTime.Day() + + // 计算初步年龄 + age := currentYear - birthYear + + // 如果当前月份小于出生月份,或者月份相同但当前日期小于出生日期,则年龄减1 + if currentMonth < birthMonth || (currentMonth == birthMonth && currentDay < birthDay) { + age-- + } + + return age +}