fix exact year inconsistencies in human readable duration
This commit is contained in:
		@@ -83,7 +83,11 @@ func HumanDuration(d time.Duration) string {
 | 
				
			|||||||
	} else if hours < 24*365*2 {
 | 
						} else if hours < 24*365*2 {
 | 
				
			||||||
		return fmt.Sprintf("%dd", hours/24)
 | 
							return fmt.Sprintf("%dd", hours/24)
 | 
				
			||||||
	} else if hours < 24*365*8 {
 | 
						} else if hours < 24*365*8 {
 | 
				
			||||||
		return fmt.Sprintf("%dy%dd", hours/24/365, (hours/24)%365)
 | 
							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))
 | 
						return fmt.Sprintf("%dy", int(hours/24/365))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -74,9 +74,14 @@ func TestHumanDurationBoundaries(t *testing.T) {
 | 
				
			|||||||
		{d: 8 * 24 * time.Hour, want: "8d"},
 | 
							{d: 8 * 24 * time.Hour, want: "8d"},
 | 
				
			||||||
		{d: 8*24*time.Hour + 23*time.Hour, want: "8d"},
 | 
							{d: 8*24*time.Hour + 23*time.Hour, want: "8d"},
 | 
				
			||||||
		{d: 2*365*24*time.Hour - time.Millisecond, want: "729d"},
 | 
							{d: 2*365*24*time.Hour - time.Millisecond, want: "729d"},
 | 
				
			||||||
		{d: 2 * 365 * 24 * time.Hour, want: "2y0d"},
 | 
							{d: 2 * 365 * 24 * time.Hour, want: "2y"},
 | 
				
			||||||
		{d: 2*365*24*time.Hour + 23*time.Hour, want: "2y0d"},
 | 
							{d: 2*365*24*time.Hour + 23*time.Hour, want: "2y"},
 | 
				
			||||||
		{d: 3 * 365 * 24 * time.Hour, want: "3y0d"},
 | 
							{d: 2*365*24*time.Hour + 23*time.Hour + 59*time.Minute, want: "2y"},
 | 
				
			||||||
 | 
							{d: 3 * 365 * 24 * time.Hour, want: "3y"},
 | 
				
			||||||
 | 
							{d: 4 * 365 * 24 * time.Hour, want: "4y"},
 | 
				
			||||||
 | 
							{d: 5 * 365 * 24 * time.Hour, want: "5y"},
 | 
				
			||||||
 | 
							{d: 6 * 365 * 24 * time.Hour, want: "6y"},
 | 
				
			||||||
 | 
							{d: 7 * 365 * 24 * time.Hour, want: "7y"},
 | 
				
			||||||
		{d: 8*365*24*time.Hour - time.Millisecond, want: "7y364d"},
 | 
							{d: 8*365*24*time.Hour - time.Millisecond, want: "7y364d"},
 | 
				
			||||||
		{d: 8 * 365 * 24 * time.Hour, want: "8y"},
 | 
							{d: 8 * 365 * 24 * time.Hour, want: "8y"},
 | 
				
			||||||
		{d: 8*365*24*time.Hour + 364*24*time.Hour, want: "8y"},
 | 
							{d: 8*365*24*time.Hour + 364*24*time.Hour, want: "8y"},
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user