/// <summary> /// Эта функция определяет, являеться ли времена a и b одними и теми же событиями с учетом погрешности измерения prem в наносекундах /// </summary> /// <param name="a">Что сравниваем</param> /// <param name="b">С чем сраваем</param> /// <param name="prem">Погрешность измерения (в наносекундах)</param> /// <returns>True, если |a-b|<=c. False, если нет.</returns> public static bool is_A_EventSimulB(DateNanos a, DateNanos b, int prem) { DateNanos c = new DateNanos(0, 0, 0, 0, 0, 0, (short)prem); c.makeCorrect(); a.makeCorrect(); b.makeCorrect(); short comp = a.compare(b); if (comp == 0) { return(true); } else if (comp == -1) { if ((b - a) <= c) { return(true); } } else if (comp == 1) { if ((a - b) <= c) { return(true); } } return(false); }
/// <summary> /// Возвращает разницу между временем данного экземпляра и аргумента, выраженную в наносекундах.<para> /// при слишком большом значении памяти ulong может не хватить!!!</para> /// </summary> /// <param name="a">То, что сравнивать</param> /// <param name="b">То, с чем сравнивать</param> /// <returns>Разница, в наносекундах</returns> static public ulong difference(DateNanos a, DateNanos b) { if (a.compare(b) > 0) { a.subtract(b); return(a.getNanos()); } else if (a.compare(b) < 0) { b.subtract(a); return(b.getNanos()); } else { return(0); } }