Golang日历计算库有哪些推荐?

Golang日历计算库有哪些推荐? 几年前,由于进行的一些研究,我获得了Dershowitz和Reingold所著的《历法计算》一书。在谷歌搜索书中包含的代码示例的更多信息时,我清晰地记得看到了一个用Go语言编写并可在网上获取的程序库的引用或链接。

当时我只是模糊地了解Go编程语言,因此并未深入关注。时光飞逝,如今我发现自己已成为这门语言的热心新手,非常渴望使用这些代码来帮助学习和提升我的Go编程技能。

然而,尽管我尽力尝试,却无法找到任何相关的引用或链接。如果有人对此有印象或能提供线索,我将不胜感激任何指点或进一步的信息。

3 回复

感谢这些链接。实际上我已经找到了第一个链接,它看起来与我最初看到参考资料的网页非常相似。

相关代码是针对书中给出的用Lisp编写的示例而定制的,可能由于版权问题该库已被撤回——这只是我的个人推测。

更多关于Golang日历计算库有哪些推荐?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


在Go语言生态中,有几个优秀的日历计算库,它们可能与你提到的《历法计算》书中的概念相关。以下是我推荐的几个库,包括示例代码以帮助你快速上手:

  1. github.com/rickar/cal:这是一个常用的Go日历库,支持多种历法和节假日计算。它提供了阳历和阴历的基本功能,并允许自定义日历规则。

    示例代码:计算指定年份的节假日

    package main
    
    import (
        "fmt"
        "time"
        "github.com/rickar/cal"
    )
    
    func main() {
        c := cal.NewCalendar()
        // 添加美国独立日作为节假日
        c.AddHoliday(cal.ECB{Month: time.July, Day: 4})
        
        year := 2023
        holidays := c.Holidays(year, nil)
        for _, h := range holidays {
            fmt.Printf("Holiday: %s (%s)\n", h.Name, h.Date.Format("2006-01-02"))
        }
    }
    
  2. github.com/golang-module/carbon:这是一个轻量级的日期时间库,灵感来自PHP的Carbon库。它支持多种历法转换和日期操作,易于集成到项目中。

    示例代码:将公历日期转换为农历日期

    package main
    
    import (
        "fmt"
        "github.com/golang-module/carbon"
    )
    
    func main() {
        // 创建一个公历日期
        date := carbon.CreateFromDate(2023, 10, 1)
        // 转换为农历日期
        lunarDate := date.Lunar()
        fmt.Printf("Lunar date: %s\n", lunarDate.ToDateString())
    }
    
  3. github.com/uniplaces/carbon:另一个类似Carbon的库,提供丰富的日期时间操作方法,包括历法支持。

    示例代码:计算两个日期之间的工作日数

    package main
    
    import (
        "fmt"
        "github.com/uniplaces/carbon"
    )
    
    func main() {
        start, _ := carbon.CreateFromDate(2023, 1, 1)
        end, _ := carbon.CreateFromDate(2023, 12, 31)
        weekdays := start.WeekdaysUntil(end)
        fmt.Printf("Weekdays between dates: %d\n", weekdays)
    }
    

这些库在Go社区中广泛使用,文档齐全,适合初学者学习和实践。你可以通过go get命令安装它们,例如:

go get github.com/rickar/cal

如果你在寻找特定于《历法计算》书中算法的实现,建议检查这些库的源码或搜索GitHub上的相关项目,它们可能包含类似的历法计算逻辑。

回到顶部