internal static T2 Last <T1, T2>(T1 timePeriod) // TODO provide optional parameter to handle what happens if result End property doesn't equal timePeriod.End? where T1 : ITimePeriod <T1> where T2 : ITimePeriod <T2> { return(TimePeriodFactory.FromDateTime <T2>(timePeriod.End).Previous()); }
internal static T2 First <T1, T2>(T1 timePeriod) // TODO provide optional parameter to handle what happens if result Start property doesn't equal timePeriod.Start? where T1 : ITimePeriod <T1> where T2 : ITimePeriod <T2> { return(TimePeriodFactory.FromDateTime <T2>(timePeriod.Start)); }