@Override public String toString() { StringBuilder sb = new StringBuilder(); long r = period; if (r < 0) { sb.append('-'); r = -r; } TimePeriodUnit[] units = TimePeriodUnit.values(); int cnt = 0; for (int i = units.length; --i >= 0; ) { TimePeriodUnit unit = units[i]; long val = r / unit.period(); r %= unit.period(); boolean ms = unit == TimePeriodUnit.SECOND && r > 0; if (val > 0 || ms) { cnt++; sb.append(val); if (ms) sb.append('.').append(r / 100).append((r / 10) % 10).append(r % 10); sb.append(unit.code()); } } if (cnt == 0) sb.append(r); return sb.toString(); }
public static TimePeriod valueOf(long n, TimePeriodUnit unit) { return new TimePeriod(n * unit.period()); }