首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从单个模型日期1到10,从单个模型日期1生成模型片段?

如何从单个模型日期1到10,从单个模型日期1生成模型片段?
EN

Stack Overflow用户
提问于 2022-11-09 05:05:37
回答 1查看 30关注 0票数 1

我其实有个这样的模特

代码语言:javascript
复制
type Price struct {
   Type  string 
   Date  time.Time
   Price float64
}

inputTime, _ := time.Parse("2006-01-02", "2022-01-01")
priceOnDate := Price{
    Type:  "A",
    Date:  inputTime,
    Price: 12.23,
}

由此,我想生成一个从1月1日到1月5日的模型片段。我得手动做

代码语言:javascript
复制
inputTime, _ := time.Parse("2006-01-02", "2014-11-12")
priceOnDate := Price{
    Type:  "A",
    Date:  inputTime,
    Price: 12.23,
}
var listOfPrice []Price

for i := 1; i < 5; i++ {
    tempPriceOnDate := priceOnDate
    tempPriceOnDate.Date = inputTime.Add(time.Hour * time.Duration(24*i))
    listOfPrice = append(listOfPrice, priceOnDate)
}
fmt.Println(listOfPrice)

不过,我觉得这并不是很优化。我相信有一些方案支持这样做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-09 05:56:44

几个窍门:

time.AddDate.

  • 您可以直接构造循环中的所有值。
  • ,您可以预先分配您的切片,因为您知道它将有多少值。
  • ,您可以使用

代码语言:javascript
复制
inputTime := time.Date(2014, 11, 12, 0, 0, 0, time.UTC)
nDays := 5
listOfPrice := make([]Price, nDays)
for i := 0; i < nDays; i++ {
  listOfPrice[i] = Price{
    Type: "A",
    Date: inputTime.AddDate(0, 0, i),
    Price: 12.23,
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74370134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档