func humanDuration(d time.Duration) string {
	// Allow deviation no more than 2 seconds(excluded) to tolerate machine time
	// inconsistence, it can be considered as almost now.
	if seconds := int(d.Seconds()); seconds < -1 {
		return fmt.Sprintf("<invalid>")
	} else if seconds < 0 {
		return fmt.Sprintf("0s")
	} else if seconds < 60*2 {
		return fmt.Sprintf("%ds", seconds)
	}
	minutes := int(d / time.Minute)
	if minutes < 10 {
		s := int(d/time.Second) % 60
		if s == 0 {
			return fmt.Sprintf("%dm", minutes)
		}
		return fmt.Sprintf("%dm%ds", minutes, s)
	} else if minutes < 60*3 {
		return fmt.Sprintf("%dm", minutes)
	}
	hours := int(d / time.Hour)
	if hours < 8 {
		m := int(d/time.Minute) % 60
		if m == 0 {
			return fmt.Sprintf("%dh", hours)
		}
		return fmt.Sprintf("%dh%dm", hours, m)
	} else if hours < 48 {
		return fmt.Sprintf("%dh", hours)
	} else if hours < 24*8 {
		h := hours % 24
		if h == 0 {
			return fmt.Sprintf("%dd", hours/24)
		}
		return fmt.Sprintf("%dd%dh", hours/24, h)
	} else if hours < 24*365*2 {
		return fmt.Sprintf("%dd", hours/24)
	} else if hours < 24*365*8 {
		dy := int(hours/24) % 365
		if dy == 0 {
			return fmt.Sprintf("%dy", hours/24/365)
		}
		return fmt.Sprintf("%dy%dd", hours/24/365, dy)
	}
	return fmt.Sprintf("%dy", int(hours/24/365))
}
// HumanDuration returns a succint representation of the provided duration
// with limited precision for consumption by humans. It provides ~2-3 significant
// figures of duration.
HumanDuration returns a succint representation of the provided duration
with limited precision for consumption by humans. It provides ~2-3 significant
figures of duration.
// HumanDuration returns a succint representation of the provided duration // with limited precision for consumption by humans . It provides ~2 - 3 significant // figures of duration .
func humanDuration(d time.Duration) string {
	if seconds := int(d.Seconds()); seconds < -1 {
		return fmt.Sprintf("<invalid>")
	} else if seconds < 0 {
		return fmt.Sprintf("0s")
	} else if seconds < 60*2 {
		return fmt.Sprintf("%ds", seconds)
	}
	minutes := int(d / time.Minute)
	if minutes < 10 {
		s := int(d/time.Second) % 60
		if s == 0 {
			return fmt.Sprintf("%dm", minutes)
		}
		return fmt.Sprintf("%dm%ds", minutes, s)
	} else if minutes < 60*3 {
		return fmt.Sprintf("%dm", minutes)
	}
	hours := int(d / time.Hour)
	if hours < 8 {
		m := int(d/time.Minute) % 60
		if m == 0 {
			return fmt.Sprintf("%dh", hours)
		}
		return fmt.Sprintf("%dh%dm", hours, m)
	} else if hours < 48 {
		return fmt.Sprintf("%dh", hours)
	} else if hours < 24*8 {
		h := hours % 24
		if h == 0 {
			return fmt.Sprintf("%dd", hours/24)
		}
		return fmt.Sprintf("%dd%dh", hours/24, h)
	} else if hours < 24*365*2 {
		return fmt.Sprintf("%dd", hours/24)
	} else if hours < 24*365*8 {
		dy := int(hours/24) % 365
		if dy == 0 {
			return fmt.Sprintf("%dy", hours/24/365)
		}
		return fmt.Sprintf("%dy%dd", hours/24/365, dy)
	}
	return fmt.Sprintf("%dy", int(hours/24/365))
}
func humanDuration ( d time . Duration ) string { if seconds := int ( d . Seconds ( ) ) ; seconds < - 1 { return fmt . Sprintf ( " " ) } else if seconds < 0 { return fmt . Sprintf ( " " ) } else if seconds < 60 * 2 { return fmt . Sprintf ( " " , seconds ) } minutes := int ( d / time . Minute ) if minutes < 10 { s := int ( d / time . Second ) % 60 if s == 0 { return fmt . Sprintf ( " " , minutes ) } return fmt . Sprintf ( " " , minutes , s ) } else if minutes < 60 * 3 { return fmt . Sprintf ( " " , minutes ) } hours := int ( d / time . Hour ) if hours < 8 { m := int ( d / time . Minute ) % 60 if m == 0 { return fmt . Sprintf ( " " , hours ) } return fmt . Sprintf ( " " , hours , m ) } else if hours < 48 { return fmt . Sprintf ( " " , hours ) } else if hours < 24 * 8 { h := hours % 24 if h == 0 { return fmt . Sprintf ( " " , hours / 24 ) } return fmt . Sprintf ( " " , hours / 24 , h ) } else if hours < 24 * 365 * 2 { return fmt . Sprintf ( " " , hours / 24 ) } else if hours < 24 * 365 * 8 { dy := int ( hours / 24 ) % 365 if dy == 0 { return fmt . Sprintf ( " " , hours / 24 / 365 ) } return fmt . Sprintf ( " " , hours / 24 / 365 , dy ) } return fmt . Sprintf ( " " , int ( hours / 24 / 365 ) ) }
HumanDuration returns a succint representation of the provided duration
with limited precision for consumption by humans.
HumanDuration returns a succint representation of the provided duration with limited precision for consumption by humans .
// Allow deviation no more than 2 seconds(excluded) to tolerate machine time // inconsistence, it can be considered as almost now.