我有一个表示购买的结构:
type Purchase struct {
id int64
UserId int64
CreatedAt time.Time
}
现在我有这些购买的集合。
在UI方面,我这样做:
所以它看起来像:
Sunday May 29th
- date/timestamp purchase id, amount, etc.
- date/timestamp purchase id, amount, etc.
Saturday May 28th
- date/timestamp purchase id, amount, etc.
Friday May 27th
..
..
(past 2 weeks).
所以我的算法是:
所以当前日期是:
t := time.Now()
如何遍历过去2周,然后将其插入地图。
您建议使用更好的算法吗?
答案 0 :(得分:0)
一种方法可能是将条目排列在时间序列结构中,并使用它来在某个时间间隔内过滤所需的条目。我们可能会使用map [timestamp_bucket] []购买地图。时间戳桶可以被计算为(time_stamp_corresponding_to_purchase_date_in_second - (time_stamp_corresponding_to_purchase_date_in_second%3600))。基本上,我们以小时为单位安排购买。当我们想要购买最后两周时,我们只计算过去两周内的time_bucket密钥,并从地图中相应的存储桶中检索购买。如果我们想要使用任意时间间隔来过滤记录,我们可以保持slice [] Purchase按需要排序。