使用C#把发表的时间改为几个月,几天前,几小时前,几分钟前,或几秒前
1 //使用C#把发表的时间改为几个月,几天前,几小时前,几分钟前,或几秒前 2 //2008年03月15日 星期六 02:35 3 public string DateStringFromNow(DateTime dt) 4 { 5 TimeSpan span = DateTime.Now - dt; 6 if (span.TotalDays > 60) 7 { 8 return dt.ToShortDateString(); 9 } 10 else 11 { 12 if (span.TotalDays > 30) 13 { 14 return 15 "1个月前"; 16 } 17 else 18 { 19 if (span.TotalDays > 14) 20 { 21 return 22 "2周前"; 23 } 24 else 25 { 26 if (span.TotalDays > 7) 27 { 28 return 29 "1周前"; 30 } 31 else 32 { 33 if (span.TotalDays > 1) 34 { 35 return 36 string.Format("{0}天前", (int)Math.Floor(span.TotalDays)); 37 } 38 else 39 { 40 if (span.TotalHours > 1) 41 { 42 return 43 string.Format("{0}小时前", (int)Math.Floor(span.TotalHours)); 44 } 45 else 46 { 47 if (span.TotalMinutes > 1) 48 { 49 return 50 string.Format("{0}分钟前", (int)Math.Floor(span.TotalMinutes)); 51 } 52 else 53 { 54 if (span.TotalSeconds >= 1) 55 { 56 return 57 string.Format("{0}秒前", (int)Math.Floor(span.TotalSeconds)); 58 } 59 else 60 { 61 return 62 "1秒前"; 63 } 64 } 65 } 66 } 67 } 68 } 69 } 70 } 71 } 72 73 //C#中使用TimeSpan计算两个时间的差值 74 //可以反加两个日期之间任何一个时间单位。 75 private string DateDiff(DateTime DateTime1, DateTime DateTime2) 76 { 77 string dateDiff = null; 78 TimeSpan ts1 = new TimeSpan(DateTime1.Ticks); 79 TimeSpan ts2 = new TimeSpan(DateTime2.Ticks); 80 TimeSpan ts = ts1.Subtract(ts2).Duration(); 81 dateDiff = ts.Days.ToString() + "天" + ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "秒"; 82 return dateDiff; 83 } 84 85 86 //说明: 87 /**/ 88 /*1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。因此,你可以用DateTime值类型来描述任何在想象范围之内的时间。一个DateTime值代表了一个具体的时刻 89 .TimeSpan值包含了许多属性与方法,用于访问或处理一个TimeSpan值 90 下面的列表涵盖了其中的一部分: 91 Add:与另一个TimeSpan值相加。 92 Days:返回用天数计算的TimeSpan值。 93 Duration:获取TimeSpan的绝对值。 94 Hours:返回用小时计算的TimeSpan值 95 Milliseconds:返回用毫秒计算的TimeSpan值。 96 Minutes:返回用分钟计算的TimeSpan值。 97 Negate:返回当前实例的相反数。 98 Seconds:返回用秒计算的TimeSpan值。 99 Subtract:从中减去另一个TimeSpan值。 100 Ticks:返回TimeSpan值的tick数。 101 TotalDays:返回TimeSpan值表示的天数。 102 TotalHours:返回TimeSpan值表示的小时数。 103 TotalMilliseconds:返回TimeSpan值表示的毫秒数。 104 TotalMinutes:返回TimeSpan值表示的分钟数。 105 TotalSeconds:返回TimeSpan值表示的秒数。 106 */ 107 108 /**/ 109 /// <summary> 110 /// 日期比较 111 /// </summary> 112 /// <param name="today">当前日期</param> 113 /// <param name="writeDate">输入日期</param> 114 /// <param name="n">比较天数</param> 115 /// <returns>大于天数返回true,小于返回false</returns> 116 private bool CompareDate(string today, string writeDate, int n) 117 { 118 DateTime Today = Convert.ToDateTime(today); 119 DateTime WriteDate = Convert.ToDateTime(writeDate); 120 WriteDate = WriteDate.AddDays(n); 121 if (Today >= WriteDate) 122 return false; 123 else 124 return true; 125 }
原文出处:http://www.cnblogs.com/zxjyuan/archive/2011/12/28/2305249.html