1 public class TimeHelper
2 {
3 #region 实现发表的时间显示
4 /// <summary>
5 /// 实现发表的时间显示为几个月,几天前,几小时前,几分钟前,或几秒前
6 /// </summary>
7 /// <param name="time"></param>
8 /// <returns></returns>
9 public static string DateStringFromNow(DateTime time)
10 {
11 TimeSpan span = DateTime.Now - time;
12 if (span.TotalDays > 120)
13 {
14 return time.ToShortDateString();
15 }
16 else if (span.TotalDays > 90)
17 {
18 return "3个月前";
19 }
20 else if (span.TotalDays > 60)
21 {
22 return "2个月前";
23 }
24 else if (span.TotalDays > 30)
25 {
26 return "1个月前";
27 }
28 else if (span.TotalDays > 14)
29 {
30 return "2周前";
31 }
32 else if (span.TotalDays > 7)
33 {
34 return "1周前";
35 }
36 else if (span.TotalDays > 1)
37 {
38 return string.Format("{0}天前", (int)Math.Floor(span.TotalDays));
39 }
40 else if (span.TotalHours > 1)
41 {
42 return string.Format("{0}小时前", (int)Math.Floor(span.TotalHours));
43 }
44 else if (span.TotalMinutes > 1)
45 {
46 return string.Format("{0}分钟前", (int)Math.Floor(span.TotalMinutes));
47 }
48 else if (span.TotalSeconds >= 1)
49 {
50 return string.Format("{0}秒前", (int)Math.Floor(span.TotalSeconds));
51 }
52 else
53 {
54 return "1秒前";
55 }
56 }
57 #endregion
58
59 #region 根据指定的日期获取当前的星期一日期
60 /// <summary>
61 /// 根据指定的日期获取当前的星期一日期
62 /// </summary>
63 /// <param name="dateTime"></param>
64 /// <returns></returns>
65 public static DateTime GetMondayDate(DateTime dateTime)
66 {
67 int dd = Convert.ToInt32(dateTime.DayOfWeek);
68 if (dd == 0) dd = 7;
69 return dateTime.AddDays(-dd + 1);
70 }
71 #endregion
72
73 #region 获取指定日期获取当前的星期天日期
74 /// <summary>
75 /// 获取指定日期获取当前的星期天日期
76 /// </summary>
77 /// <param name="dateTime"></param>
78 /// <returns></returns>
79 public static DateTime GetSundayDate(DateTime dateTime)
80 {
81 return dateTime.AddDays(1 - Convert.ToInt32(dateTime.DayOfWeek.ToString("d"))).AddDays(6);
82 }
83 #endregion
84
85 #region 获取两者间的相隔天数
86 /// <summary>
87 /// 获取两者间的相隔天数
88 /// </summary>
89 /// <param name="beginDate"></param>
90 /// <param name="endDate"></param>
91 /// <returns></returns>
92 public static int GetApartDay(DateTime beginDate, DateTime endDate)
93 {
94 TimeSpan span = endDate - beginDate;
95 return Convert.ToInt32(span.TotalDays);
96 }
97 #endregion
98
99 }