Browse Source

Improve time since post date displays

- 15 days now is "15 days" rather than "3 weeks" ago.
- 32 days is now "1 month" rather than "2 months" ago.
- 366 days is now "1 year" rather than "2 years" ago.

Closes #267
ariddell 7 years ago
parent
commit
3d04d92aa2
2 changed files with 9 additions and 5 deletions
  1. 4 4
      template/functions.go
  2. 5 1
      template/functions_test.go

+ 4 - 4
template/functions.go

@@ -162,16 +162,16 @@ func elapsedTime(printer *locale.Printer, tz string, t time.Time) string {
 		return printer.Plural("time_elapsed.hours", hours, hours)
 	case d == 1:
 		return printer.Printf("time_elapsed.yesterday")
-	case d < 7:
+	case d < 21:
 		return printer.Plural("time_elapsed.days", d, d)
 	case d < 31:
-		weeks := int(math.Ceil(float64(d) / 7))
+		weeks := int(math.Round(float64(d) / 7))
 		return printer.Plural("time_elapsed.weeks", weeks, weeks)
 	case d < 365:
-		months := int(math.Ceil(float64(d) / 30))
+		months := int(math.Round(float64(d) / 30))
 		return printer.Plural("time_elapsed.months", months, months)
 	default:
-		years := int(math.Ceil(float64(d) / 365))
+		years := int(math.Round(float64(d) / 365))
 		return printer.Plural("time_elapsed.years", years, years)
 	}
 }

+ 5 - 1
template/functions_test.go

@@ -111,8 +111,12 @@ func TestElapsedTime(t *testing.T) {
 		{time.Now().Add(-time.Hour * 3), printer.Plural("time_elapsed.hours", 3, 3)},
 		{time.Now().Add(-time.Hour * 32), printer.Printf("time_elapsed.yesterday")},
 		{time.Now().Add(-time.Hour * 24 * 3), printer.Plural("time_elapsed.days", 3, 3)},
-		{time.Now().Add(-time.Hour * 24 * 14), printer.Plural("time_elapsed.weeks", 2, 2)},
+		{time.Now().Add(-time.Hour * 24 * 14), printer.Plural("time_elapsed.days", 14, 14)},
+		{time.Now().Add(-time.Hour * 24 * 15), printer.Plural("time_elapsed.days", 15, 15)},
+		{time.Now().Add(-time.Hour * 24 * 21), printer.Plural("time_elapsed.weeks", 3, 3)},
+		{time.Now().Add(-time.Hour * 24 * 32), printer.Plural("time_elapsed.months", 1, 1)},
 		{time.Now().Add(-time.Hour * 24 * 60), printer.Plural("time_elapsed.months", 2, 2)},
+		{time.Now().Add(-time.Hour * 24 * 366), printer.Plural("time_elapsed.years", 1, 1)},
 		{time.Now().Add(-time.Hour * 24 * 365 * 3), printer.Plural("time_elapsed.years", 3, 3)},
 	}
 	for i, tt := range dt {