示例#1
0
 public void InflateByMinutes(int value)
 {
     if (value > 0)
     {
         /*
          * steps is positive
          * decrease min, increase max by the amount of steps
          */
         if (Minimum.TryAddMinutes(-value.NotBelow((int)(Bounds.Minimum - Minimum).Minutes()), out DateTime dtn))
         {
             Minimum = dtn;
         }
         if (Maximum.TryAddMinutes(value.NotAbove((int)(Bounds.Maximum - Maximum).Minutes()), out DateTime dtx))
         {
             Maximum = dtx;
         }
     }
     else if (value < 0)
     {
         /*
          * steps is negative
          * increase min, decrease max by the amount of steps
          */
         if (Minimum.TryAddMinutes(-value.NotAbove((int)(Bounds.Maximum - Minimum).Minutes()), out DateTime dtn))
         {
             Minimum = dtn;
         }
         if (Maximum.TryAddMinutes(value.NotBelow((int)(Bounds.Minimum - Maximum).Minutes()), out DateTime dtx))
         {
             Maximum = dtx;
         }
     }
 }
示例#2
0
 public void ShiftByMinutes(int value)
 {
     if (value > 0)
     {
         /*
          * steps is positive
          * increase min, max by the amount of steps only
          * if they will be less than or equal bounds max
          */
         if (Minimum.TryAddMinutes(value.NotAbove((int)(Bounds.Maximum - Minimum).Minutes()), out DateTime dtn))
         {
             Minimum = dtn;
         }
         if (Maximum.TryAddMinutes(value.NotAbove((int)(Bounds.Maximum - Maximum).Minutes()), out DateTime dtx))
         {
             Maximum = dtx;
         }
     }
     else if (value < 0)
     {
         /*
          * steps is negative
          * decrease min, max by the amount of steps only
          * if they will be greater than or equal bounds min
          */
         // This is not a mistake, I'll actually add a negative to a negative
         if (Minimum.TryAddMinutes(value.NotBelow((int)(Bounds.Minimum - Minimum).Minutes()), out DateTime dtn))
         {
             Minimum = dtn;
         }
         if (Maximum.TryAddMinutes(value.NotBelow((int)(Bounds.Minimum - Maximum).Minutes()), out DateTime dtx))
         {
             Maximum = dtx;
         }
     }
 }