public static string AsPrettifiedDate(this DateTime dateTime)
{
var dateDiff = DateTime.Now.Subtract(dateTime);
var dayDiff = (int)dateDiff.TotalDays;
var secDiff = (int)dateDiff.TotalSeconds;
if (dayDiff < 0 || dayDiff >= 31) return string.Empty;
if (dayDiff == 0)
{
if (secDiff < 60) return "just now";
if (secDiff < 120) return "1 minute ago";
if (secDiff < 3600) return $"{Math.Floor((double)secDiff / 60)} minutes ago";
if (secDiff < 7200) return "1 hour ago";
if (secDiff < 86400) return $"{Math.Floor((double)secDiff / 3600)} hours ago";
}
if (dayDiff == 1) return "yesterday";
if (dayDiff < 7) return $"{dayDiff} days ago";
return dayDiff < 31 ? $"{Math.Ceiling((double)dayDiff / 7)} weeks ago" : string.Empty;
}
Comments