Your rules are quite simple to translate into code, no need to invent.
static string GetDateRangeString(DateTime startDate, DateTime endDate)
{
if (endDate.Year != startDate.Year)
{
return startDate.ToString("M/d/yyyy") + "-" + endDate.ToString("M/d/yyyy");
}
else if (endDate.Month != startDate.Month)
{
return startDate.ToString("M/d") + "-" + endDate.ToString("M/d/yyyy");
}
else
{
return startDate.ToString("M/d") + "-" + endDate.ToString("d/yyyy");
}
}
Demonstrations:
Console.WriteLine(GetDateRangeString(new DateTime(2010, 9, 29), new DateTime(2010, 9, 30)));
Console.WriteLine(GetDateRangeString(new DateTime(2010, 9, 29), new DateTime(2010, 10, 30)));
Console.WriteLine(GetDateRangeString(new DateTime(2010, 9, 29), new DateTime(2011, 1, 30)));
source
share