Skip to content

Commit f6f92aa

Browse files
authored
Merge pull request kubernetes#90082 from bitscuit/consistent-year-formats
fix exact year inconsistencies in human readable duration
2 parents 640b3c0 + 36139a7 commit f6f92aa

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

staging/src/k8s.io/apimachinery/pkg/util/duration/duration.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,11 @@ func HumanDuration(d time.Duration) string {
8383
} else if hours < 24*365*2 {
8484
return fmt.Sprintf("%dd", hours/24)
8585
} else if hours < 24*365*8 {
86-
return fmt.Sprintf("%dy%dd", hours/24/365, (hours/24)%365)
86+
dy := int(hours/24) % 365
87+
if dy == 0 {
88+
return fmt.Sprintf("%dy", hours/24/365)
89+
}
90+
return fmt.Sprintf("%dy%dd", hours/24/365, dy)
8791
}
8892
return fmt.Sprintf("%dy", int(hours/24/365))
8993
}

staging/src/k8s.io/apimachinery/pkg/util/duration/duration_test.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,16 @@ func TestHumanDurationBoundaries(t *testing.T) {
7474
{d: 8 * 24 * time.Hour, want: "8d"},
7575
{d: 8*24*time.Hour + 23*time.Hour, want: "8d"},
7676
{d: 2*365*24*time.Hour - time.Millisecond, want: "729d"},
77-
{d: 2 * 365 * 24 * time.Hour, want: "2y0d"},
78-
{d: 2*365*24*time.Hour + 23*time.Hour, want: "2y0d"},
79-
{d: 3 * 365 * 24 * time.Hour, want: "3y0d"},
77+
{d: 2 * 365 * 24 * time.Hour, want: "2y"},
78+
{d: 2*365*24*time.Hour + 23*time.Hour, want: "2y"},
79+
{d: 2*365*24*time.Hour + 23*time.Hour + 59*time.Minute, want: "2y"},
80+
{d: 2*365*24*time.Hour + 24*time.Hour - time.Millisecond, want: "2y"},
81+
{d: 2*365*24*time.Hour + 24*time.Hour, want: "2y1d"},
82+
{d: 3 * 365 * 24 * time.Hour, want: "3y"},
83+
{d: 4 * 365 * 24 * time.Hour, want: "4y"},
84+
{d: 5 * 365 * 24 * time.Hour, want: "5y"},
85+
{d: 6 * 365 * 24 * time.Hour, want: "6y"},
86+
{d: 7 * 365 * 24 * time.Hour, want: "7y"},
8087
{d: 8*365*24*time.Hour - time.Millisecond, want: "7y364d"},
8188
{d: 8 * 365 * 24 * time.Hour, want: "8y"},
8289
{d: 8*365*24*time.Hour + 364*24*time.Hour, want: "8y"},

0 commit comments

Comments
 (0)