WIP
DirectOutput framework for virtual pinball cabinets WIP
Go to:
Overview 
TimeSpanExtensions.cs
Go to the documentation of this file.
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 
6 
10 public static class TimeSpanExtensions
11 {
16  public static string Format(this TimeSpan TS)
17  {
18  if (TS.Ticks < 10)
19  {
20  //Nanoseconds
21  return "{0}ns".Build(TS.Ticks * 100);
22  }
23  else if (TS.Ticks < 10000) //<1 millisecond
24  {
25  //Microseconds
26  return "{0:0.0}µs".Build(TS.Ticks / 10);
27  }
28  else if (TS.TotalMilliseconds < 1000) //<1 second
29  {
30  return "{0:0.0}ms".Build(TS.TotalMilliseconds);
31  }
32  else if (TS.TotalSeconds < 60) //<1 minute
33  {
34  return "{0:0.000}s".Build(TS.TotalSeconds);
35  }
36  else if (TS.TotalMinutes < 60) //<1 hour
37  {
38  return "{0:#0}m {1:#0}s".Build(Math.Floor(TS.TotalMinutes), TS.Seconds);
39  }
40  else if (TS.TotalHours < 24)
41  {
42  return "{0:#0}h {1:#0}m {2:#0}s".Build(Math.Floor(TS.TotalHours), TS.Minutes, TS.Seconds);
43  }
44  return TS.ToString();
45  }
46 
53  public static bool IsBetween(this TimeSpan i, TimeSpan MinValue, TimeSpan MaxValue)
54  {
55  return (i >= MinValue && i <= MaxValue);
56  }
57 
58 
65  public static TimeSpan Limit(this TimeSpan i, TimeSpan MinValue, TimeSpan MaxValue)
66  {
67  if (i < MinValue) return MinValue;
68  if (i > MaxValue) return MaxValue;
69  return i;
70  }
71 }
72