使用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

你可能感兴趣的:(C#)