一个C#时间工具类,可用于时间计算,比如根据出生年月实现生日提醒、两个日期天数比较、根据英文的星期几返回中文的星期几、计算两个时间的差值,返回的是x天x小时x分钟x秒、时间相差值、根据时间返回几个月前,几天前,几小时前,几分钟前以及几秒前,现在用不到的话,先收藏吧,代码如下:QSaHTML5中文学习网 - HTML5先行者学习网
  001using System;QSaHTML5中文学习网 - HTML5先行者学习网
  002using System.Collections.Generic;QSaHTML5中文学习网 - HTML5先行者学习网
  003using System.Linq;QSaHTML5中文学习网 - HTML5先行者学习网
  004using System.Text;QSaHTML5中文学习网 - HTML5先行者学习网
  005namespace CLB.Utility.CharToolsQSaHTML5中文学习网 - HTML5先行者学习网
  006{QSaHTML5中文学习网 - HTML5先行者学习网
  007 public static class DateTimeHelperQSaHTML5中文学习网 - HTML5先行者学习网
  008 {QSaHTML5中文学习网 - HTML5先行者学习网
  009 ////QSaHTML5中文学习网 - HTML5先行者学习网
  010 /// 根据时间返回几个月前,几天前,几小时前,几分钟前以及几秒前QSaHTML5中文学习网 - HTML5先行者学习网
  011 ///QSaHTML5中文学习网 - HTML5先行者学习网
  012 ///QSaHTML5中文学习网 - HTML5先行者学习网
  013 ///QSaHTML5中文学习网 - HTML5先行者学习网
  014 public static string DateStringFromNow(DateTime dt)QSaHTML5中文学习网 - HTML5先行者学习网
  015 {QSaHTML5中文学习网 - HTML5先行者学习网
  016 TimeSpan span = DateTime.Now - dt;QSaHTML5中文学习网 - HTML5先行者学习网
  017 if (span.TotalDays > 60)QSaHTML5中文学习网 - HTML5先行者学习网
  018 {QSaHTML5中文学习网 - HTML5先行者学习网
  019 return dt.ToShortDateString();QSaHTML5中文学习网 - HTML5先行者学习网
  020 }QSaHTML5中文学习网 - HTML5先行者学习网
  021 else if (span.TotalDays > 30)QSaHTML5中文学习网 - HTML5先行者学习网
  022 {QSaHTML5中文学习网 - HTML5先行者学习网
  023 return "1个月前";QSaHTML5中文学习网 - HTML5先行者学习网
  024 }QSaHTML5中文学习网 - HTML5先行者学习网
  025 else if (span.TotalDays > 14)QSaHTML5中文学习网 - HTML5先行者学习网
  026 {QSaHTML5中文学习网 - HTML5先行者学习网
  027 return "2周前";QSaHTML5中文学习网 - HTML5先行者学习网
  028 }QSaHTML5中文学习网 - HTML5先行者学习网
  029 else if (span.TotalDays > 7)QSaHTML5中文学习网 - HTML5先行者学习网
  030 {QSaHTML5中文学习网 - HTML5先行者学习网
  031 return "1周前";QSaHTML5中文学习网 - HTML5先行者学习网
  032 }QSaHTML5中文学习网 - HTML5先行者学习网
  033 else if (span.TotalDays > 1)QSaHTML5中文学习网 - HTML5先行者学习网
  034 {QSaHTML5中文学习网 - HTML5先行者学习网
  035 return string.Format("{0}天前", (int)Math.Floor(span.TotalDays));QSaHTML5中文学习网 - HTML5先行者学习网
  036 }QSaHTML5中文学习网 - HTML5先行者学习网
  037 else if (span.TotalHours > 1)QSaHTML5中文学习网 - HTML5先行者学习网
  038 {QSaHTML5中文学习网 - HTML5先行者学习网
  039 return string.Format("{0}小时前", (int)Math.Floor(span.TotalHours));QSaHTML5中文学习网 - HTML5先行者学习网
  040 }QSaHTML5中文学习网 - HTML5先行者学习网
  041 else if (span.TotalMinutes > 1)QSaHTML5中文学习网 - HTML5先行者学习网
  042 {QSaHTML5中文学习网 - HTML5先行者学习网
  043 return string.Format("{0}分钟前", (int)Math.Floor(span.TotalMinutes));QSaHTML5中文学习网 - HTML5先行者学习网
  044 }QSaHTML5中文学习网 - HTML5先行者学习网
  045 else if (span.TotalSeconds >= 1)QSaHTML5中文学习网 - HTML5先行者学习网
  046 {QSaHTML5中文学习网 - HTML5先行者学习网
  047 return string.Format("{0}秒前", (int)Math.Floor(span.TotalSeconds));QSaHTML5中文学习网 - HTML5先行者学习网
  048 }QSaHTML5中文学习网 - HTML5先行者学习网
  049 elseQSaHTML5中文学习网 - HTML5先行者学习网
  050 {QSaHTML5中文学习网 - HTML5先行者学习网
  051 return "1秒前";QSaHTML5中文学习网 - HTML5先行者学习网
  052 }QSaHTML5中文学习网 - HTML5先行者学习网
  053 }QSaHTML5中文学习网 - HTML5先行者学习网
  054 ///QSaHTML5中文学习网 - HTML5先行者学习网
  055 /// 时间相差值,返回时间差QSaHTML5中文学习网 - HTML5先行者学习网
  056 /// 调用时,isTotal为true时,返回的时带小数的天数,否则返回的是整数QSaHTML5中文学习网 - HTML5先行者学习网
  057 ///QSaHTML5中文学习网 - HTML5先行者学习网
  058 ///QSaHTML5中文学习网 - HTML5先行者学习网
  059 ///QSaHTML5中文学习网 - HTML5先行者学习网
  060 ///QSaHTML5中文学习网 - HTML5先行者学习网
  061 ///QSaHTML5中文学习网 - HTML5先行者学习网
  062 public static string DateDiff(DateTime DateTime1, DateTime DateTime2,  bool isTotal)QSaHTML5中文学习网 - HTML5先行者学习网
  063 {QSaHTML5中文学习网 - HTML5先行者学习网
  064 TimeSpan ts = DateTime2 - DateTime1;QSaHTML5中文学习网 - HTML5先行者学习网
  065 if (isTotal)QSaHTML5中文学习网 - HTML5先行者学习网
  066 //带小数的天数,比如1天12小时结果就是1.5QSaHTML5中文学习网 - HTML5先行者学习网
  067 return ts.TotalDays.ToString();QSaHTML5中文学习网 - HTML5先行者学习网
  068 elseQSaHTML5中文学习网 - HTML5先行者学习网
  069 //整数天数,1天12小时或者1天20小时结果都是1QSaHTML5中文学习网 - HTML5先行者学习网
  070 return ts.Days.ToString();QSaHTML5中文学习网 - HTML5先行者学习网
  071 }QSaHTML5中文学习网 - HTML5先行者学习网
  072 ///QSaHTML5中文学习网 - HTML5先行者学习网
  073 /// 计算两个时间的差值,返回的是x天x小时x分钟x秒QSaHTML5中文学习网 - HTML5先行者学习网
  074 ///QSaHTML5中文学习网 - HTML5先行者学习网
  075 ///QSaHTML5中文学习网 - HTML5先行者学习网
  076 ///QSaHTML5中文学习网 - HTML5先行者学习网
  077 ///QSaHTML5中文学习网 - HTML5先行者学习网
  078 public static string DateDiff(DateTime DateTime1, DateTime  DateTime2)QSaHTML5中文学习网 - HTML5先行者学习网
  079 {QSaHTML5中文学习网 - HTML5先行者学习网
  080 string dateDiff = null;QSaHTML5中文学习网 - HTML5先行者学习网
  081 TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);QSaHTML5中文学习网 - HTML5先行者学习网
  082 TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);QSaHTML5中文学习网 - HTML5先行者学习网
  083 TimeSpan ts = ts1.Subtract(ts2).Duration();QSaHTML5中文学习网 - HTML5先行者学习网
  084 //TimeSpan ts=ts1.Add(ts2).Duration();QSaHTML5中文学习网 - HTML5先行者学习网
  085 dateDiff = ts.Days.ToString() + "天" + ts.Hours.ToString() + "小时" +  ts.Minutes.ToString() + "分钟"+ ts.Seconds.ToString() + "秒";QSaHTML5中文学习网 - HTML5先行者学习网
  086 return dateDiff;QSaHTML5中文学习网 - HTML5先行者学习网
  087 }QSaHTML5中文学习网 - HTML5先行者学习网
  088 ///QSaHTML5中文学习网 - HTML5先行者学习网
  089 /// 根据英文的星期几返回中文的星期几QSaHTML5中文学习网 - HTML5先行者学习网
  090 /// 如WhichDay("Sunday"),返回星期日QSaHTML5中文学习网 - HTML5先行者学习网
  091 ///QSaHTML5中文学习网 - HTML5先行者学习网
  092 ///QSaHTML5中文学习网 - HTML5先行者学习网
  093 ///QSaHTML5中文学习网 - HTML5先行者学习网
  094 public static string WhichDay(string enWeek)QSaHTML5中文学习网 - HTML5先行者学习网
  095 {QSaHTML5中文学习网 - HTML5先行者学习网
  096 switch (enWeek.Trim())QSaHTML5中文学习网 - HTML5先行者学习网
  097 {QSaHTML5中文学习网 - HTML5先行者学习网
  098 case "Sunday":QSaHTML5中文学习网 - HTML5先行者学习网
  099 return "星期日";QSaHTML5中文学习网 - HTML5先行者学习网
  100 case "Monday":QSaHTML5中文学习网 - HTML5先行者学习网
  101 return "星期一";QSaHTML5中文学习网 - HTML5先行者学习网
  102 case "Tuesday":QSaHTML5中文学习网 - HTML5先行者学习网
  103 return "星期二";QSaHTML5中文学习网 - HTML5先行者学习网
  104 case "Wednesday":QSaHTML5中文学习网 - HTML5先行者学习网
  105 return "星期三";QSaHTML5中文学习网 - HTML5先行者学习网
  106 case "Thursday":QSaHTML5中文学习网 - HTML5先行者学习网
  107 return "星期四";QSaHTML5中文学习网 - HTML5先行者学习网
  108 case "Friday":QSaHTML5中文学习网 - HTML5先行者学习网
  109 return "星期五";QSaHTML5中文学习网 - HTML5先行者学习网
  110 case "Saturday":QSaHTML5中文学习网 - HTML5先行者学习网
  111 return "星期六";QSaHTML5中文学习网 - HTML5先行者学习网
  112 default:QSaHTML5中文学习网 - HTML5先行者学习网
  113 return enWeek;QSaHTML5中文学习网 - HTML5先行者学习网
  114 }QSaHTML5中文学习网 - HTML5先行者学习网
  115 }QSaHTML5中文学习网 - HTML5先行者学习网
  116 ///QSaHTML5中文学习网 - HTML5先行者学习网
  117 /// 日期比较QSaHTML5中文学习网 - HTML5先行者学习网
  118 ///QSaHTML5中文学习网 - HTML5先行者学习网
  119 /// 当前日期QSaHTML5中文学习网 - HTML5先行者学习网
  120 /// 输入日期QSaHTML5中文学习网 - HTML5先行者学习网
  121 /// 比较天数QSaHTML5中文学习网 - HTML5先行者学习网
  122 /// 大于天数返回true,小于返回falseQSaHTML5中文学习网 - HTML5先行者学习网
  123 public static bool CompareDate(string today, string writeDate, int  n)QSaHTML5中文学习网 - HTML5先行者学习网
  124 {QSaHTML5中文学习网 - HTML5先行者学习网
  125 DateTime Today = Convert.ToDateTime(today);QSaHTML5中文学习网 - HTML5先行者学习网
  126 DateTime WriteDate = Convert.ToDateTime(writeDate);QSaHTML5中文学习网 - HTML5先行者学习网
  127 WriteDate = WriteDate.AddDays(n);QSaHTML5中文学习网 - HTML5先行者学习网
  128 if (Today >= WriteDate)QSaHTML5中文学习网 - HTML5先行者学习网
  129 return false;QSaHTML5中文学习网 - HTML5先行者学习网
  130 elseQSaHTML5中文学习网 - HTML5先行者学习网
  131 return true;QSaHTML5中文学习网 - HTML5先行者学习网
  132 }QSaHTML5中文学习网 - HTML5先行者学习网
  133 ///QSaHTML5中文学习网 - HTML5先行者学习网
  134 /// 根据出生年月进行生日提醒QSaHTML5中文学习网 - HTML5先行者学习网
  135 ///QSaHTML5中文学习网 - HTML5先行者学习网
  136 ///QSaHTML5中文学习网 - HTML5先行者学习网
  137 ///QSaHTML5中文学习网 - HTML5先行者学习网
  138 public static string GetBirthdayTip(DateTime birthday)QSaHTML5中文学习网 - HTML5先行者学习网
  139 {QSaHTML5中文学习网 - HTML5先行者学习网
  140 DateTime now = DateTime.Now;QSaHTML5中文学习网 - HTML5先行者学习网
  141 //TimeSpan span = DateTime.Now - birthday;QSaHTML5中文学习网 - HTML5先行者学习网
  142 int nowMonth = now.Month;QSaHTML5中文学习网 - HTML5先行者学习网
  143 int birtMonth = birthday.Month;QSaHTML5中文学习网 - HTML5先行者学习网
  144 if (nowMonth == 12 && birtMonth == 1)QSaHTML5中文学习网 - HTML5先行者学习网
  145 return string.Format("下月{0}号", birthday.Day);QSaHTML5中文学习网 - HTML5先行者学习网
  146 if (nowMonth == 1 && birtMonth == 12)QSaHTML5中文学习网 - HTML5先行者学习网
  147 return string.Format("上月{0}号", birthday.Day);QSaHTML5中文学习网 - HTML5先行者学习网
  148 int months = now.Month - birthday.Month;QSaHTML5中文学习网 - HTML5先行者学习网
  149 //int days = now.Day - birthday.Day;QSaHTML5中文学习网 - HTML5先行者学习网
  150 if (months == 1)QSaHTML5中文学习网 - HTML5先行者学习网
  151 return string.Format("上月{0}号", birthday.Day);QSaHTML5中文学习网 - HTML5先行者学习网
  152 else if (months == -1)QSaHTML5中文学习网 - HTML5先行者学习网
  153 return string.Format("下月{0}号", birthday.Day);QSaHTML5中文学习网 - HTML5先行者学习网
  154 else if (months == 0)QSaHTML5中文学习网 - HTML5先行者学习网
  155 {QSaHTML5中文学习网 - HTML5先行者学习网
  156 if (now.Day == birthday.Day)QSaHTML5中文学习网 - HTML5先行者学习网
  157 return "今天";QSaHTML5中文学习网 - HTML5先行者学习网
  158 return string.Format("本月{0}号", birthday.Day);QSaHTML5中文学习网 - HTML5先行者学习网
  159 }QSaHTML5中文学习网 - HTML5先行者学习网
  160 else if (months > 1)QSaHTML5中文学习网 - HTML5先行者学习网
  161 return string.Format("已过{0}月", months);QSaHTML5中文学习网 - HTML5先行者学习网
  162 elseQSaHTML5中文学习网 - HTML5先行者学习网
  163 return string.Format("{0}月{1}日", birthday.Month, birthday.Day);QSaHTML5中文学习网 - HTML5先行者学习网
  164 }QSaHTML5中文学习网 - HTML5先行者学习网
  165 }QSaHTML5中文学习网 - HTML5先行者学习网
  166}QSaHTML5中文学习网 - HTML5先行者学习网