internal static FormatComponents ToComponents()

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;
			}