////////////////////////////////////////////////////////////////////////// // Locale ////////////////////////////////////////////////////////////////////////// public string toLocale() { long ticks = this.m_ticks; Pod pod = Sys.m_sysPod; Env env = Env.cur(); Locale locale = Locale.cur(); StringBuilder s; // less than 1000ns Xns if (ticks < 1000L) { return(ticks + env.locale(pod, "nsAbbr", "ns", locale)); } // less than 2ms X.XXXms if (ticks < 2 * nsPerMilli) { s = new StringBuilder(); long ms = ticks / nsPerMilli; long us = (ticks - ms * nsPerMilli) / 1000L; s.Append(ms); s.Append('.'); if (us < 100) { s.Append('0'); } if (us < 10) { s.Append('0'); } s.Append(us); if (s[s.Length - 1] == '0') { s.Length = s.Length - 1; } if (s[s.Length - 1] == '0') { s.Length = s.Length - 1; } s.Append(env.locale(pod, "msAbbr", "ms", locale)); return(s.ToString()); } // less than 2sec Xms if (ticks < 2L * nsPerSec) { return((ticks / nsPerMilli) + env.locale(pod, "msAbbr", "ms", locale)); } // less than 2min Xsec if (ticks < 1L * nsPerMin) { return((ticks / nsPerSec) + env.locale(pod, "secAbbr", "sec", locale)); } // [Xdays] [Xhr] Xmin Xsec long days = ticks / nsPerDay; ticks -= days * nsPerDay; long hr = ticks / nsPerHr; ticks -= hr * nsPerHr; long min = ticks / nsPerMin; ticks -= min * nsPerMin; long sec = ticks / nsPerSec; s = new StringBuilder(); if (days > 0) { s.Append(days).Append(days == 1 ? env.locale(pod, "dayAbbr", "day", locale) : env.locale(pod, "daysAbbr", "days", locale)).Append(" "); } if (hr > 0) { s.Append(hr).Append(env.locale(pod, "hourAbbr", "hr", locale)).Append(" "); } if (min > 0) { s.Append(min).Append(env.locale(pod, "minAbbr", "min", locale)).Append(" "); } if (sec > 0) { s.Append(sec).Append(env.locale(pod, "secAbbr", "sec", locale)).Append(" "); } s.Length = s.Length - 1; return(s.ToString()); }