Go k8s 스타일 Age 함수

개요[ | ]

Go k8s 스타일 Age 함수
Go getAgeFromDuration()
Go
Copy
package main

import (
	"fmt"
	"time"
)

func toK8sAgeString(duration time.Duration) string {
	totalSeconds := int(duration.Seconds())

	days := totalSeconds / 86400
	hours := (totalSeconds % 86400) / 3600
	minutes := (totalSeconds % 3600) / 60
	seconds := totalSeconds % 60

	result := ""

	if days > 0 {
		result = fmt.Sprintf("%dd", days)
	} else if hours > 0 {
		result = fmt.Sprintf("%dh", hours)
	} else if minutes > 0 {
		result = fmt.Sprintf("%dm", minutes)
	} else {
		result = fmt.Sprintf("%ds", seconds)
	}

	return result
}

func main() {
	durations := []time.Duration{
		time.Second * 45,           // 45s
		time.Minute * 5,            // 5m
		time.Hour + time.Minute*25, // 1h
		time.Hour*24 + time.Hour*3, // 1d
		time.Hour * 72,             // 3d
	}

	for _, duration := range durations {
		fmt.Println(toK8sAgeString(duration))
	}
}