duanjia4220 2013-10-01 17:35
浏览 45
已采纳

如何在Go中获得给定月份的第一个星期一?

I'm trying to get the first Monday of a given month.

Best way I can come up with is to loop through first seven days and return when .Weekday() == "Monday". Is there a better way to do this?

  • 写回答

1条回答 默认 最新

  • dongsui4658 2013-10-01 17:52
    关注

    By looking at the .Weekday() of the time, you can compute the first Monday.

    package main
    
    import (
        "fmt"
        "time"
    )
    
    // FirstMonday returns the day of the first Monday in the given month.
    func FirstMonday(year int, month time.Month) int {
        t := time.Date(year, month, 1, 0, 0, 0, 0, time.UTC)
        return (8-int(t.Weekday()))%7 + 1
    }
    
    func main() {
        for m := 1; m <= 12; m++ {
            fmt.Println(m, FirstMonday(2013, time.Month(m)))
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序