代码拉取完成,页面将自动刷新
package common
import (
"crypto/md5"
"fmt"
"io"
"net/url"
"reflect"
"time"
)
// MD5 md5加密
func MD5(s string) string {
h := md5.New()
io.WriteString(h, s)
return fmt.Sprintf("%x", h.Sum(nil))
}
// ProtocolConverter 协议转换器
func ProtocolConverter(protocolType int) string {
var schema string
switch protocolType {
case ProtocolTypeHttp:
schema = "http://"
case ProtocolTypeHttps:
schema = "https://"
case ProtocolTypeWebSocket:
schema = "ws://"
default:
schema = ""
}
return schema
}
func MustParseURL(s string) *url.URL {
u, err := url.Parse(s)
if err != nil {
panic(err)
}
return u
}
func SumArray(numbers []int64) int64 {
var sum int64
for _, number := range numbers {
sum += number
}
return sum
}
// DiffTime 计算两个时间点之间的差异,并返回天数、小时数、分钟数和秒数。
func DiffTime(t1, t2 time.Time) (days int, hours int, minutes int, seconds int) {
diff := t2.Sub(t1)
// 计算总秒数
totalSeconds := int(diff.Seconds())
// 计算天数
days = totalSeconds / (24 * 60 * 60)
// 计算剩余的秒数
remainingSeconds := totalSeconds % (24 * 60 * 60)
// 计算小时数
hours = remainingSeconds / (60 * 60)
// 计算剩余的秒数
remainingSeconds %= 60 * 60
// 计算分钟数
minutes = remainingSeconds / 60
// 计算剩余的秒数
seconds = remainingSeconds % 60
return days, hours, minutes, seconds
}
func PrintFields(s interface{}) {
v := reflect.ValueOf(s)
if v.Kind() == reflect.Ptr {
v = v.Elem()
}
if v.Kind() != reflect.Struct {
fmt.Println("Not a struct")
return
}
t := v.Type()
for i := 0; i < v.NumField(); i++ {
f := v.Field(i)
fmt.Printf("%s: %v\n", t.Field(i).Name, f.Interface())
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。