using System.Collections.Generic;
public static List<Tuple<DateTime,int>> masterlist;
public static void Main()
DateTime? FSDateStart = null;
DateTime? NFSDateStart = null;
DateTime? FSDateEnd = null;
DateTime? NFSDateEnd = null;
bool NFSPrevious = false;
masterlist = new List<Tuple<DateTime,int>>();
masterlist.Add(new Tuple<DateTime,int>(new DateTime(2016,02,10),1));
masterlist.Add(new Tuple<DateTime,int>(new DateTime(2016,11,08),2));
masterlist.Add(new Tuple<DateTime,int>(new DateTime(2017,03,03),4));
masterlist.Add(new Tuple<DateTime,int>(new DateTime(2017,03,30),1));
masterlist.Add(new Tuple<DateTime,int>(new DateTime(2017,05,22),3));
masterlist.Add(new Tuple<DateTime,int>(new DateTime(2017,07,10),1));
masterlist.Add(new Tuple<DateTime,int>(new DateTime(2017,07,14),4));
masterlist.Sort((x, y) => x.Item1.CompareTo(y.Item1));
masterlist.ForEach(x => {
NFSDateEnd = x.Item1.AddDays(1);;
if(FSPrevious){FSDateEnd = x.Item1; }
if(NFSPrevious){NFSDateEnd = x.Item1;}
FSDateEnd = x.Item1.AddDays(1);
if(NFSPrevious){NFSDateEnd = x.Item1;}
if(NFSDateStart == null && NFSDateEnd != null){Console.WriteLine("Somehow NFSDateEnd was not null but NFSDateStart was.");}
if(NFSDateStart != null && NFSDateEnd == null){Console.WriteLine("Somehow NFSDateStart was not null but NFSDateEnd was.");}
if(NFSDateStart == null && NFSDateEnd == null){NFSDateStart = DateTime.MinValue;NFSDateEnd=DateTime.MinValue;Console.WriteLine("There were no Not for sales");}
if(FSDateStart == null && FSDateEnd == null){FSDateStart = DateTime.MinValue;FSDateEnd=DateTime.MinValue;Console.WriteLine("There were no for sales");}
if(FSDateStart != null && FSDateEnd == null){FSDateEnd = FSDateStart.Value.AddDays(1);Console.WriteLine("FSDateEnd Set to FSDateSTart !!!");}
if(NFSDateStart != null && NFSDateEnd == null){NFSDateEnd = NFSDateStart.Value.AddDays(1);Console.WriteLine("NFSDateEnd Set to NFSDateSTart !!!");}
Console.WriteLine("Latest Date For Sale is " + FSDateStart.Value.ToShortDateString() );
Console.WriteLine("Days Not For Sale {1} to {2} is {0} ", (NFSDateEnd-NFSDateStart).Value.TotalDays,NFSDateStart.Value.ToShortDateString(),NFSDateEnd.Value.ToShortDateString());
Console.WriteLine("Days For Sale {1} to {2} is {0} ", (FSDateEnd-FSDateStart).Value.TotalDays,FSDateStart.Value.ToShortDateString(),FSDateEnd.Value.ToShortDateString());
if(NFSDateEnd > FSDateEnd){Console.WriteLine("Unit is not for Sale");}
if(FSDateEnd > NFSDateEnd){Console.WriteLine("Unit is for Sale");}