亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何獲得一片元組(小時,分鐘)

如何獲得一片元組(小時,分鐘)

Go
湖上湖 2023-05-08 17:48:29
我有一個我無法解決的問題。我正在使用https://github.com/kmanley/golang-tuple創建元組。我有一份會議記錄清單:minutes := int{0, 30} // Minutes are 0 and 30以及四個參數:start, startBreak, stop, stopBreak:start := tuple.NewTupleFromItems(9, 30) // It represents "9:30"startBreak := tuple.NewTupleFromItems(12, 0) // It represents "12:00"stop := tuple.NewTupleFromItems(21, 0) // It represents "21:00"stopBreak := tuple.NewTupleFromItems(14, 30) // It represents "14:30"(hour, minutes)我想使用切片中的所有分鐘來獲得一片元組minutes,并且它們不能包含在范圍內startBreak-stopBreak(它可以等于startBreakor stopBreak,因此范圍將變為12:30, 13:00, 13:30, 14:00)和stop-start(它可以等于startand stop,因此范圍會變成21:30, 22:00, 22:30, ..., 8:30, 9:00)。例如,使用這四個參數,最終結果將是:9:30, 10:00, 10:30, 11:00, 11:30, 12:00, 14:30, 15:00, 15:30, 16:00, 16:30, 17:00, 17:30, 18:00, 18:30, 19:00, 19:30, 20:00, 20:30, 21:00
查看完整描述

1 回答

?
當年話下

TA貢獻1890條經驗 獲得超9個贊

這是演示這一點的最小代碼,我沒有進行任何數據驗證。


func periods(minutes, start, startBreak, stopBreak, stop *tuple.Tuple) (out []tuple.Tuple) {


    // next() moves current to the next minute interval

    i := 0

    curr := tuple.NewTupleFromItems(start.Get(0), minutes.Get(0))

    next := func() {

        i = (i + 1) % minutes.Len()

        curr.Set(1, minutes.Get(i))

        if i == 0 {

            curr.Set(0, curr.Get(0).(int)+1)

        }

    }


    for ; curr.Le(stop); next() {

        if (curr.Ge(start) && curr.Le(startBreak)) || (curr.Ge(stopBreak) && curr.Le(stop)) {

            out = append(out, *curr.Copy())

        }

    }


    return out

}

操場


查看完整回答
反對 回復 2023-05-08
  • 1 回答
  • 0 關注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號