public TimeNode Join(TimeNode tn) { if (tn.Stop < Start || tn.Start > Stop) return null; else return new TimeNode { Start = new Time (Math.Min (Start.MSeconds, tn.Start.MSeconds)), Stop = new Time (Math.Max (Stop.MSeconds, tn.Stop.MSeconds)) }; }