From d15a0b957118fb5e5c1b876799cfe8b368c4730e Mon Sep 17 00:00:00 2001 From: loshiqi <553578653@qq.com> Date: Wed, 21 Jan 2026 16:01:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=85=B7=E4=BD=93=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E8=BD=AC=E5=B9=B4=E9=BE=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- time.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) 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 +}