RelativeDateFormatter: Simplify rounding of years and months
Instead of adjusting the years and months values after first incorrectly calculating them, fix the calculation. Based on the implementation proposed in [1] [1] https://git.eclipse.org/r/#/c/109895/ Also-by: Michael Keppler <Michael.Keppler@gmx.de> Change-Id: I9a48183c9a16fda2ea0d2521a7cd0b1a5e5f2f45
This commit is contained in:
parent
1b596afc4d
commit
24796d957a
|
@ -114,20 +114,13 @@ public class RelativeDateFormatter {
|
|||
|
||||
// up to 5 years use "year, months" rounded to months
|
||||
if (ageMillis < 5 * YEAR_IN_MILLIS) {
|
||||
long years = ageMillis / YEAR_IN_MILLIS;
|
||||
long years = round(ageMillis, MONTH_IN_MILLIS) / 12;
|
||||
String yearLabel = (years > 1) ? c().years() : c().year();
|
||||
long months = round(ageMillis % YEAR_IN_MILLIS, MONTH_IN_MILLIS);
|
||||
long months = round(ageMillis - years * YEAR_IN_MILLIS, MONTH_IN_MILLIS);
|
||||
String monthLabel = (months > 1) ? c().months() : (months == 1 ? c().month() : "");
|
||||
if (months == 0) {
|
||||
return m().years0MonthsAgo(years, yearLabel);
|
||||
}
|
||||
if (months == 12) {
|
||||
years++;
|
||||
if (years > 1) {
|
||||
yearLabel = c().years();
|
||||
}
|
||||
return m().years0MonthsAgo(years, yearLabel);
|
||||
}
|
||||
return m().yearsMonthsAgo(years, yearLabel, months, monthLabel);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue