diff --git a/X10D/TimeSpanExtensions.cs b/X10D/TimeSpanExtensions.cs
index 59c2c1f..d9bc39a 100644
--- a/X10D/TimeSpanExtensions.cs
+++ b/X10D/TimeSpanExtensions.cs
@@ -14,11 +14,42 @@
///
/// Calculates how long ago a specified was.
///
- /// The .
- /// Optional. Whether or not to use instead of .
- /// Defaults to .
- /// Returns a .
- public static DateTime Ago(this TimeSpan span, bool utc = false) =>
- (utc ? DateTime.UtcNow : DateTime.Now) - span;
+ /// The . Defaults to .
+ /// Returns a human-readable describing how long ago
+ /// represents from now.
+ public static string Ago(this TimeSpan span)
+ {
+ if (span < TimeSpan.FromSeconds(60))
+ {
+ return $"{span.Seconds} seconds ago";
+ }
+
+ if (span < TimeSpan.FromMinutes(60))
+ {
+ return span.Minutes > 1 ? $"about {span.Minutes} minutes ago" : "about a minute ago";
+ }
+
+ if (span < TimeSpan.FromHours(24))
+ {
+ return span.Hours > 1 ? $"about {span.Hours} hours ago" : "about an hour ago";
+ }
+
+ if (span <= TimeSpan.FromDays(7))
+ {
+ return span.Days > 1 ? $"about {span.Days} days ago" : "yesterday";
+ }
+
+ if (span < TimeSpan.FromDays(30))
+ {
+ return $"about {span.Days} days ago";
+ }
+
+ if (span < TimeSpan.FromDays(365))
+ {
+ return span.Days > 30 ? $"about {span.Days} months ago" : "about a month ago";
+ }
+
+ return span.Days > 365 ? $"about {span.Days / 365} years ago" : "about a year ago";
+ }
}
}