Пример #1
0
 /// <summary>
 /// Creates a new instance of <see cref="DateRangeBound"/> using a UTC timestamp
 /// </summary>
 /// <param name="precision"></param>
 /// <param name="utcTimestamp"></param>
 private DateRangeBound(DateRangePrecision precision, DateTimeOffset utcTimestamp)
 {
     if (precision < DateRangePrecision.Year || precision > DateRangePrecision.Millisecond)
     {
         throw new ArgumentOutOfRangeException("precision");
     }
     if (utcTimestamp.Offset != TimeSpan.Zero)
     {
         throw new ArgumentException("Timestamp should be a UTC time", "utcTimestamp");
     }
     _timestamp = utcTimestamp;
     _precision = precision;
 }
Пример #2
0
        public static DateRange Create(DateRangePrecision precision, int span, DateTime? dateTime = null)
        {
            DateTime dt = dateTime ?? DateTime.Today;

            DateRange dateRange;
            switch (precision)
            {
                case DateRangePrecision.Seconds:
                    dateRange = new DateRange(dt.Add(new TimeSpan(0, 0, span)), dt);
                    break;
                case DateRangePrecision.Minutes:
                    dateRange = new DateRange(dt.Add(new TimeSpan(0, span, 0)), dt);
                    break;
                case DateRangePrecision.Hours:
                    dateRange = new DateRange(dt.Add(new TimeSpan(span, 0, 0)), dt);
                    break;
                case DateRangePrecision.Days:
                    dateRange = new DateRange(dt.Add(new TimeSpan(span, 0, 0, 0, 0)), dt);
                    break;
                case DateRangePrecision.Months:
                    dateRange = new DateRange(dt.AddMonths(span), dt.AddDays(-1));
                    break;
                case DateRangePrecision.Year:
                    dateRange = new DateRange(dt.AddYears(span), dt);
                    break;
                default:
                    dateRange = DateRange.Empty;
                    break;
            }

            dateRange.Kind = DateRangeKind.Custom;

            return dateRange;
        }
Пример #3
0
 private void Set(DateRangePrecision precision, int value)
 {
     _values[(int)precision] = value;
 }
Пример #4
0
 /// <summary>
 /// Creates a new instance of <see cref="DateRangeBound"/>.
 /// </summary>
 public DateRangeBound(DateTimeOffset timestamp, DateRangePrecision precision) :
     this(precision, timestamp.ToUniversalTime())
 {
 }
Пример #5
0
 /// <summary>
 /// Private constructor only intended for creating the unbounded instance
 /// </summary>
 // ReSharper disable once UnusedParameter.Local
 private DateRangeBound(bool asUnbounded)
 {
     // Workaround: we can not declare a parameter-less constructor on a struct
     _timestamp = DateTimeOffset.MinValue;
     _precision = (DateRangePrecision)byte.MaxValue;
 }