Age()函数无法使用time.Time类型。
创始人
2024-07-30 20:30:36
0

可以使用Sub()函数计算两个时间之间的差异,然后使用Years()、Months()和Days()函数来获取相应的年、月和日数。以下是一个示例代码:

package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now()
    birthdate := time.Date(1990, 1, 1, 0, 0, 0, 0, time.UTC)

    years, months, days := diff(birthdate, now)

    fmt.Printf("Age: %d years, %d months, %d days\n", years, months, days)
}

func diff(birthdate, now time.Time) (int, int, int) {
    years := now.Year() - birthdate.Year()
    months := int(now.Month() - birthdate.Month())
    days := now.Day() - birthdate.Day()

    if months < 0 {
        years--
        months += 12
    }
    if days < 0 {
        months--
        days += daysInMonth(now.Month()-1, now.Year())
    }

    return years, months, days
}

func daysInMonth(month time.Month, year int) int {
    switch month {
    case time.February:
        if year%4 == 0 && (year%100 != 0 || year%400 == 0) {
            return 29
        }
        return 28
    case time.April, time.June, time.September, time.November:
        return 30
    default:
        return 31
    }
}

相关内容

热门资讯

安装apache-beam==... 出现此错误可能是因为用户的Python版本太低,而apache-beam==2.34.0需要更高的P...
避免在粘贴双引号时向VS 20... 在粘贴双引号时向VS 2022添加反斜杠的问题通常是由于编辑器的自动转义功能引起的。为了避免这个问题...
Android Recycle... 要在Android RecyclerView中实现滑动卡片效果,可以按照以下步骤进行操作:首先,在项...
omi系统和安卓系统哪个好,揭... OMI系统和安卓系统哪个好?这个问题就像是在问“苹果和橘子哪个更甜”,每个人都有自己的答案。今天,我...
原生ios和安卓系统,原生对比... 亲爱的读者们,你是否曾好奇过,为什么你的iPhone和安卓手机在操作体验上有着天壤之别?今天,就让我...
Android - 无法确定任... 这个错误通常发生在Android项目中,表示编译Debug版本的Java代码时出现了依赖关系问题。下...
Android - NDK 预... 在Android NDK的构建过程中,LOCAL_SRC_FILES只能包含一个项目。如果需要在ND...
Akka生成Actor问题 在Akka框架中,可以使用ActorSystem对象生成Actor。但是,当我们在Actor类中尝试...
Agora-RTC-React... 出现这个错误原因是因为在 React 组件中使用,import AgoraRTC from “ago...
Alertmanager在pr... 首先,在Prometheus配置文件中,确保Alertmanager URL已正确配置。例如:ale...