登录
首页 >  Golang >  Go问答

在 Go 中如何获得顺序指示符(第一、第二、第三等)

来源:stackoverflow

时间:2024-03-05 15:42:30 456浏览 收藏

你在学习Golang相关的知识吗?本文《在 Go 中如何获得顺序指示符(第一、第二、第三等)》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

问题内容

go 的 time 包让我可以做到这一点:

time.Now().Format("2 January 2006")

返回类似 10 october 2009 的内容。

我可以使用 time 或任何标准 go 包获得类似 10th december 2009 的内容吗?

time.format 文档没有提到它,如果可能的话我想避免手动执行。


解决方案


内置 time 库不支持此功能。您需要自己实现该功能,使用链接的 java 问题中描述的算法,或者使用可以为您执行此操作的第三方库,例如 humanizehttps://godoc.org/github.com/dustin/go-humanize#Ordinal

它是不太漂亮,但你可以使用这个:

func GetOrdinalNumber(n int) string {
    func GetOrdinalNumber(n int) string {
    if n >= 11 && n <= 13 {
        return fmt.Sprintf("%dth", n)
    }

    switch n % 10 {
    case 1:
        return fmt.Sprintf("%dst", n)
    case 2:
        return fmt.Sprintf("%dnd", n)
    case 3:
        return fmt.Sprintf("%drd", n)
    default:
        return fmt.Sprintf("%dth", n)
    }
}

以上就是《在 Go 中如何获得顺序指示符(第一、第二、第三等)》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>