public static void Main()
Console.WriteLine("Hello World");
public interface ITimePeriodExtractable
TimePeriod ExtractTimePeriod();
public TimePeriod(DateTime startDate, DateTime endDate)
DateTime StartDate {get; set;}
DateTime EndDate {get; set;}
public class BillingPeriod : ITimePeriodExtractable
public DateTime StartDate {get;}
public DateTime EndDate {get; }
public int BillingFrequency {get;}
public TimePeriod ExtractTimePeriod()
return new TimePeriod(this.StartDate, this.EndDate);
public class MemberPlan : ITimePeriodExtractable
public int MemberId {get; set;}
public DateTime StartDate {get;}
public DateTime EndDate {get; }
public TimePeriod ExtractTimePeriod()
return new TimePeriod(this.StartDate, this.EndDate);