| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- using System;
- namespace wispro.sp.web
- {
- public static class DateTimeExtension
- {
- private const int Second = 1;
- private const int Minute = 60 * Second;
- private const int Hour = 60 * Minute;
- private const int Day = 24 * Hour;
- private const int Month = 30 * Day;
- // todo: Need to be localized
- public static string ToFriendlyDisplay(this DateTime dateTime)
- {
- var ts = DateTime.Now - dateTime;
- var delta = ts.TotalSeconds;
- if (delta < 0)
- {
- return "not yet";
- }
- if (delta < 1 * Minute)
- {
- return ts.Seconds == 1 ? "1 秒前" : ts.Seconds + " 秒前";
- }
- if (delta < 2 * Minute)
- {
- return "1 分钟前";
- }
- if (delta < 45 * Minute)
- {
- return ts.Minutes + "分钟";
- }
- if (delta < 90 * Minute)
- {
- return "1 小说前";
- }
- if (delta < 24 * Hour)
- {
- return ts.Hours + "小时前";
- }
- if (delta < 48 * Hour)
- {
- return "昨天";
- }
- if (delta < 30 * Day)
- {
- return ts.Days + "天前";
- }
- if (delta < 12 * Month)
- {
- var months = Convert.ToInt32(Math.Floor((double)ts.Days / 30));
- return months <= 1 ? "一月前" : months + "月前";
- }
- else
- {
- var years = Convert.ToInt32(Math.Floor((double)ts.Days / 365));
- return years <= 1 ? "一年前" : years + "年前";
- }
- }
- }
- }
|