in csharp/EPAM.Deltix.HdTime/Convert.cs [496:521]
internal static FormatComponents ToComponents(Int64 dt)
{
FormatComponents components;
components.sign = 0;
long sign = dt >> 63;
long day = (dt - sign) / NanosInDay + sign;
dt = dt - day * NanosInDay;
long old = dt;
dt /= NanosInMinute;
long sec = old - dt * NanosInMinute;
old = dt;
dt /= MinutesInHour;
long secOld = sec;
sec /= NanosInSecond;
components.minute = (int)(old - dt * MinutesInHour);
components.nanosecond = (int)(secOld - sec * NanosInSecond);
components.second = (int)sec;
components.hour = (int)dt;
// TODO: Optimize, remove dependency from DateTime
var t = new System.DateTime(day * TicksInDay + Gmt1970Ticks);
components.day = t.Day;
components.month = t.Month;
components.year = t.Year;
return components;
}