Add method ToRelativeDate to SparkleHelpers
This commit is contained in:
parent
bdf1f2aac6
commit
943e25a252
|
@ -141,6 +141,63 @@ namespace SparkleShare {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Formats a timestamp to a relative date compared to the current time
|
||||||
|
// Example: "about 5 hours ago"
|
||||||
|
public static string ToRelativeDate (DateTime date_time)
|
||||||
|
{
|
||||||
|
TimeSpan time_span = new TimeSpan (0);
|
||||||
|
time_span = DateTime.Now - date_time;
|
||||||
|
|
||||||
|
if (time_span <= TimeSpan.FromSeconds (60)) {
|
||||||
|
if (time_span.Seconds > 1)
|
||||||
|
return string.Format ("{0} seconds ago", time_span.Seconds);
|
||||||
|
else
|
||||||
|
return "a second ago";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (time_span <= TimeSpan.FromSeconds (60)) {
|
||||||
|
if (time_span.Minutes > 1)
|
||||||
|
return string.Format ("about {0} minutes ago", time_span.Minutes);
|
||||||
|
else
|
||||||
|
return "a minute ago";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (time_span <= TimeSpan.FromHours(24)) {
|
||||||
|
if (time_span.Hours > 1)
|
||||||
|
return string.Format ("about {0} minutes ago", time_span.Hours);
|
||||||
|
else
|
||||||
|
return "about an hour ago";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (time_span <= TimeSpan.FromDays(30)) {
|
||||||
|
if (time_span.Days > 1)
|
||||||
|
return string.Format ("{0} days ago", time_span.Days);
|
||||||
|
else
|
||||||
|
return "yesterday";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (time_span <= TimeSpan.FromDays(365)) {
|
||||||
|
if (time_span.Days > 1)
|
||||||
|
return string.Format ("{0} months ago", (int) time_span.Days / 30);
|
||||||
|
else
|
||||||
|
return "a month ago";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (time_span <= TimeSpan.FromDays(365)) {
|
||||||
|
if (time_span.Days > 1)
|
||||||
|
return string.Format ("{0} months ago", (int) time_span.Days / 365);
|
||||||
|
else
|
||||||
|
return "a month ago";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (time_span.Days > 365)
|
||||||
|
return string.Format ("{0} months ago", (int) time_span.Days / 365);
|
||||||
|
else
|
||||||
|
return "a year ago";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue