gpt4 book ai didi

date - 如何计算结束日期

转载 作者:行者123 更新时间:2023-12-01 20:23:23 25 4
gpt4 key购买 nike

我正在尝试给定startDate和持续时间来计算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
}

这是惯用的方式吗?如果我想使用其他类型的时间(例如 yearsmonths),是否应该遵循这种模式?

最佳答案

最简单的方法是只使用 time.Duration time.Add() 方法计算结束日期:

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

end := t.Add(d)

如果日期可以大于一天,那么这已经不够了,因为应该考虑夏令时和leap年。此外, time.Duration不能表示大于290年的持续时间(大约)。

在这种情况下,持续时间应为 (years, months, days)三元数,并应使用 time.AddDate()
t := time.Now()
years, months, days := 15, 2, 3

end := t.AddDate(years, months, days)

查看相关问题:

time.Since() with months and years

Difference between two time.Time objects

关于date - 如何计算结束日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59784225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com