Esempio n. 1
0
    /// <summary>
    /// Эта функция определяет, являеться ли времена a и b одними и теми же событиями с учетом погрешности измерения prem в наносекундах
    /// </summary>
    /// <param name="a">Что сравниваем</param>
    /// <param name="b">С чем сраваем</param>
    /// <param name="prem">Погрешность измерения (в наносекундах)</param>
    /// <returns>True, если |a-b|&lt;=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);
    }
Esempio n. 2
0
 /// <summary>
 /// Этот метод вычитает из данного экземпляра времени время аргумент и приводит результат к правельному виду.
 /// ВАЖНО!!! ОТРИЦАТЕЛЬНОЕ ВРЕМЯ НЕПРЕДСКАЗУЕМО СЕБЯ ВЕДЕТ. НЕ СОВЕТУЮ ВЫЧИТАТЬ ИЗ МЕНЬШЕГО ВРЕМЕНИ БОЛЬШЕЕ
 /// </summary>
 /// <param name="date">На сколько времени нужно уменьшить это время</param>
 void subtract(DateNanos date)
 {
     makeCorrect();
     date.makeCorrect();
     if (compare(date) >= 0)
     {
         this.Days    -= date.Days;
         this.Hours   -= date.Hours;
         this.Minutes -= date.Minutes;
         this.Seconds -= date.Seconds;
         this.Millis  -= date.Millis;
         this.Micros  -= date.Micros;
         this.Nanos   -= date.Nanos;
     }
     else
     {
         this.Days    = (short)(date.Days - this.Days);
         this.Hours   = (short)(date.Hours - this.Hours);
         this.Minutes = (short)(date.Minutes - this.Minutes);
         this.Seconds = (short)(date.Seconds - this.Seconds);
         this.Millis  = (short)(date.Millis - this.Millis);
         this.Micros  = (short)(date.Micros - this.Micros);
         this.Nanos   = (short)(date.Nanos - this.Nanos);
     }
     makeCorrect();
 }