using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace GBPVRProgramDatabaseFixer { public interface IDateTimeRange { DateTime Start { get; } DateTime End { get; } void CopyTo(ref IDateTimeRange range); //IDateTimeRange Copy(); } public class DateTimeRange : IDateTimeRange { public static IDateTimeRange Create() { return new DateTimeRange(); } public static IDateTimeRange Create(DateTime start, DateTime end) { return new DateTimeRange(start, end); } public static IDateTimeRange Create(IDateTimeRange range) { return new DateTimeRange(range); } protected DateTimeRange() : this(new DateTime(),new DateTime()) { } protected DateTimeRange(DateTime start, DateTime end) { this.Start = start; this.End = end; } protected DateTimeRange(IDateTimeRange range) : this(range.Start, range.End) { } #region IDateTimeRange members public DateTime Start { get; set; } public DateTime End { get; set; } public void CopyTo(ref IDateTimeRange range) { range = this.Copy(); } #endregion private IDateTimeRange Copy() { return new DateTimeRange(this); } } }