Date 如何计算结束日期

Date 如何计算结束日期,date,go,time,Date,Go,Time,我试图根据起始日期和持续时间计算endDate 例如: func calculateEndDate(startDate *time.Time, duration uint32, durationType uint32) *time.Time { endDate := &time.Time{} switch enum.DurationType(durationType) { case enum.DayType: temp := startDate.A

我试图根据起始日期和持续时间计算endDate

例如:

func calculateEndDate(startDate *time.Time, duration uint32, durationType uint32) *time.Time {
    endDate := &time.Time{}
    switch enum.DurationType(durationType) {
    case enum.DayType:
        temp := startDate.Add(time.Duration(24*duration) * time.Hour)
        endDate = &temp
    }
    return endDate
}

这是惯用的做法吗?如果我想使用不同类型的时间,如年或月,我应该遵循这种模式吗?

最惯用的方式是:

持续时间:=时间。持续时间/*一定时间*/ endDate:=startDate.Addduration 在此示例中,持续时间可以是任意时间量,最多为:

持续时间:=10*时间。秒//10秒 持续时间:=15*时间。分钟//15分钟 持续时间:=5*time.Hour//5小时 持续时间:=6*24*时间。小时//6个24小时天
etc

最惯用的方式是:

持续时间:=时间。持续时间/*一定时间*/ endDate:=startDate.Addduration 在此示例中,持续时间可以是任意时间量,最多为:

持续时间:=10*时间。秒//10秒 持续时间:=15*时间。分钟//15分钟 持续时间:=5*time.Hour//5小时 持续时间:=6*24*时间。小时//6个24小时天
etc

最简单的方法是使用和计算结束日期:

t := time.Now()
d := 3*time.Hour + 20*time.Minute

end := t.Add(d)
若日期可以大于一天,那个么这就不够了,因为应该考虑夏时制和闰年。还有时间。持续时间不能表示大约超过290年的持续时间

在这种情况下,持续时间应以年、月、日三元形式给出,并应使用

t := time.Now()
years, months, days := 15, 2, 3

end := t.AddDate(years, months, days)
见相关问题:


最简单的方法是使用和计算结束日期:

t := time.Now()
d := 3*time.Hour + 20*time.Minute

end := t.Add(d)
若日期可以大于一天,那个么这就不够了,因为应该考虑夏时制和闰年。还有时间。持续时间不能表示大约超过290年的持续时间

在这种情况下,持续时间应以年、月、日三元形式给出,并应使用

t := time.Now()
years, months, days := 15, 2, 3

end := t.AddDate(years, months, days)
见相关问题:


time.time.AddDate是您要查找的。经验法则:首先阅读所有文档。time.time.AddDate是您要查找的。经验法则:首先阅读所有文档。