main
1using System;
2
3namespace MoMoney.Domain.Core
4{
5 public interface IRange<T> where T : IComparable
6 {
7 bool contains(T item);
8 T start_of_range { get; }
9 T end_of_range { get; }
10 }
11
12 public class Range<T> : IRange<T> where T : IComparable
13 {
14 public T start_of_range { get; private set; }
15 public T end_of_range { get; private set; }
16
17 public Range(T start_of_range, T end_of_range)
18 {
19 if (start_of_range.CompareTo(end_of_range) < 0)
20 {
21 this.start_of_range = start_of_range;
22 this.end_of_range = end_of_range;
23 }
24 else
25 {
26 this.start_of_range = end_of_range;
27 this.end_of_range = start_of_range;
28 }
29 }
30
31 public bool contains(T item)
32 {
33 return start_of_range.CompareTo(item) <= 0 && end_of_range.CompareTo(item) >= 0;
34 }
35 }
36}