Skip to main content

Elapsed Time Generator

    public class ElapsedTimeGenerator
    {
        public string Generate(DateTime dateTime)
        {
            TimeSpan elapsedTime = DateTime.Now.Subtract(dateTime);
            if (elapsedTime.Days > 730)
            {
                double years = elapsedTime.Days / 365;
                return String.Format("More than {0} years ago", Math.Floor(years).ToString());
            }
            if (elapsedTime.Days > 365)
            {
                return "More than 1 year ago";
            }
            if (elapsedTime.Days > 60)
            {
                double months = elapsedTime.Days / 30;
                return String.Format("{0} months ago", Math.Floor(months).ToString());
            }
            if (elapsedTime.Days > 30)
            {
                return "1 month ago";
            }
            if (elapsedTime.Days > 1)
            {
                return String.Format("{0} days ago", elapsedTime.Days);
            }
            if (elapsedTime.Days == 1)
            {
                return "Yesterday";
            }
            if (elapsedTime.Hours > 1)
            {
                return String.Format("{0} hours ago", elapsedTime.Hours);
            }
            if (elapsedTime.Days == 1)
            {
                return "An hour ago";
            }
            return String.Format("{0} minutes ago", elapsedTime.Minutes);
        }
    }
 
QED 

Comments