mirror of
https://github.com/APIParkLab/APIPark.git
synced 2026-06-04 10:13:53 +08:00
78 lines
1.7 KiB
Go
78 lines
1.7 KiB
Go
package common
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
)
|
|
|
|
func FormatCountInt64(count int64) string {
|
|
switch {
|
|
case count < 1000:
|
|
return strconv.FormatInt(count, 10)
|
|
case count < 1000000:
|
|
return fmt.Sprintf("%.1fK", float64(count)/1000)
|
|
case count < 1000000000:
|
|
return fmt.Sprintf("%.1fM", float64(count)/1000000)
|
|
case count < 1000000000000:
|
|
return fmt.Sprintf("%.1fB", float64(count)/1000000000)
|
|
default:
|
|
return fmt.Sprintf("%.1fT", float64(count)/1000000000000)
|
|
}
|
|
}
|
|
|
|
func FormatCountFloat64(count float64) string {
|
|
switch {
|
|
case count < 1000:
|
|
return fmt.Sprintf("%.1f", count)
|
|
case count < 1000000:
|
|
return fmt.Sprintf("%.1fK", count/1000)
|
|
case count < 1000000000:
|
|
return fmt.Sprintf("%.1fM", count/1000000)
|
|
case count < 1000000000000:
|
|
return fmt.Sprintf("%.1fB", count/1000000000)
|
|
default:
|
|
return fmt.Sprintf("%.1fT", count/1000000000000)
|
|
}
|
|
}
|
|
|
|
func FormatTime(t int64) string {
|
|
if t < 1000 {
|
|
return strconv.FormatInt(t, 10) + "ms"
|
|
}
|
|
if t < 1000000 {
|
|
return fmt.Sprintf("%.1fs", float64(t)/1000)
|
|
}
|
|
if t < 1000000000 {
|
|
return fmt.Sprintf("%.1fmin", float64(t)/1000000)
|
|
}
|
|
if t < 1000000000000 {
|
|
return fmt.Sprintf("%.1fhour", float64(t)/1000000000)
|
|
}
|
|
return fmt.Sprintf("%.1D", float64(t)/1000000000000)
|
|
}
|
|
|
|
func FormatByte(b int64) string {
|
|
const (
|
|
KB = 1000
|
|
MB = KB * 1000
|
|
GB = MB * 1000
|
|
TB = GB * 1000
|
|
PB = TB * 1000
|
|
)
|
|
|
|
switch {
|
|
case b < KB:
|
|
return fmt.Sprintf("%dB", b)
|
|
case b < MB:
|
|
return fmt.Sprintf("%.1fKB", float64(b)/KB)
|
|
case b < GB:
|
|
return fmt.Sprintf("%.1fMB", float64(b)/MB)
|
|
case b < TB:
|
|
return fmt.Sprintf("%.1fGB", float64(b)/GB)
|
|
case b < PB:
|
|
return fmt.Sprintf("%.1fTB", float64(b)/TB)
|
|
default:
|
|
return fmt.Sprintf("%.1fPB", float64(b)/PB)
|
|
}
|
|
}
|