首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在文件和结构中设置日期和日期数组

如何在文件和结构中设置日期和日期数组
EN

Stack Overflow用户
提问于 2019-09-13 01:48:36
回答 1查看 411关注 0票数 0

我必须在60秒后为每个请求保存一条记录,我必须将记录保存到我的appsettings.json中,例如

代码语言:javascript
复制
09/13/2019 11:38 AM: request count last 60s : 4
09/13/2019 12:40 PM: request count last 60s : 6

在我的struct中,我将其设置为

代码语言:javascript
复制
// Appsettings struct
    Appsettings struct {
        Requests []Requests `request`
    }

    // Requests struct
    Requests struct {
        RequestDate string      `requestDate`
        Datas       []time.Time `datas`
    }

我的目标是统计60秒后的请求数,并计算请求数。

如果您有任何建议,我该如何显示

代码语言:javascript
复制
09/13/2019 11:38 AM: request count last 60s : 4
09/13/2019 12:40 PM: request count last 60s : 6

并将其存储在我的文件中。

EN

回答 1

Stack Overflow用户

发布于 2019-09-13 02:20:03

下面是示例代码:

代码语言:javascript
复制
package main

import (
    "fmt"
    "time"
)

type Requests struct {
    RequestDate string      `requestDate`
    Datas       []time.Time `datas`
}

type Appsettings struct {
    Requests []Requests `request`
}

var appsettings Appsettings

func addRequest(requestTime time.Time) {
    timeString := requestTime.Format("01/02/2006 03:04 PM")

    requestFound := false
    for key, request := range appsettings.Requests {
        if request.RequestDate == timeString {
            requestFound = true
            request.Datas = append(request.Datas, requestTime)
            appsettings.Requests[key] = request
        }
    }

    if requestFound == false {
        newRequest := Requests{
            RequestDate: timeString,
            Datas: make([]time.Time, 0),
        }
        newRequest.Datas = append(newRequest.Datas, requestTime)
        appsettings.Requests = append(appsettings.Requests, newRequest)
    }
}

func printRequests() {
    for _, request := range appsettings.Requests {
        fmt.Printf("%s: request count last 60s : %d\n", request.RequestDate, len(request.Datas))
    }
}

func main() {
    appsettings = Appsettings{}
    appsettings.Requests = make([]Requests, 0)

    requestTime, _ := time.Parse(time.RFC3339, "2006-09-13T11:04:00Z")
    addRequest(requestTime)

    requestTime, _ = time.Parse(time.RFC3339, "2006-09-13T15:04:00Z")
    addRequest(requestTime)

    requestTime, _ = time.Parse(time.RFC3339, "2006-09-13T15:04:59Z")
    addRequest(requestTime)

    requestTime, _ = time.Parse(time.RFC3339, "2006-09-13T15:05:01Z")
    addRequest(requestTime)

    printRequests()
}

重现此输出:

代码语言:javascript
复制
09/13/2006 11:04 AM: request count last 60s : 1
09/13/2006 03:04 PM: request count last 60s : 2
09/13/2006 03:05 PM: request count last 60s : 1

Go游乐场链接:https://play.golang.org/p/XqyhScHDW8R

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57912085

复制
相关文章

相似问题

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