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

posted @ 2013-06-07 16:00  银河系上的地球  阅读(273)  评论(0编辑  收藏  举报