C#时间操作类时间计算等
来源: 阅读:1126 次 日期:2014-08-20 15:00:16
温馨提示: 小编为您整理了“C#时间操作类时间计算等”,方便广大网友查阅!

一个C#时间工具类,可用于时间计算,比如根据出生年月实现生日提醒、两个日期天数比较、根据英文的星期几返回中文的星期几、计算两个时间的差值,返回的是x天x小时x分钟x秒、时间相差值、根据时间返回几个月前,几天前,几小时前,几分钟前以及几秒前,现在用不到的话,先收藏吧,代码如下:

001using System;

002using System.Collections.Generic;

003using System.Linq;

004using System.Text;

005namespace CLB.Utility.CharTools

006{

007 public static class DateTimeHelper

008 {

009 ////

010 /// 根据时间返回几个月前,几天前,几小时前,几分钟前以及几秒前

011 ///

012 ///

013 ///

014 public static string DateStringFromNow(DateTime dt)

015 {

016 TimeSpan span = DateTime.Now - dt;

017 if (span.TotalDays > 60)

018 {

019 return dt.ToShortDateString();

020 }

021 else if (span.TotalDays > 30)

022 {

023 return "1个月前";

024 }

025 else if (span.TotalDays > 14)

026 {

027 return "2周前";

028 }

029 else if (span.TotalDays > 7)

030 {

031 return "1周前";

032 }

033 else if (span.TotalDays > 1)

034 {

035 return string.Format("{0}天前", (int)Math.Floor(span.TotalDays));

036 }

037 else if (span.TotalHours > 1)

038 {

039 return string.Format("{0}小时前", (int)Math.Floor(span.TotalHours));

040 }

041 else if (span.TotalMinutes > 1)

042 {

043 return string.Format("{0}分钟前", (int)Math.Floor(span.TotalMinutes));

044 }

045 else if (span.TotalSeconds >= 1)

046 {

047 return string.Format("{0}秒前", (int)Math.Floor(span.TotalSeconds));

048 }

049 else

050 {

051 return "1秒前";

052 }

053 }

054 ///

055 /// 时间相差值,返回时间差

056 /// 调用时,isTotal为true时,返回的时带小数的天数,否则返回的是整数

057 ///

058 ///

059 ///

060 ///

061 ///

062 public static string DateDiff(DateTime DateTime1, DateTime DateTime2, bool isTotal)

063 {

064 TimeSpan ts = DateTime2 - DateTime1;

065 if (isTotal)

066 //带小数的天数,比如1天12小时结果就是1.5

067 return ts.TotalDays.ToString();

068 else

069 //整数天数,1天12小时或者1天20小时结果都是1

070 return ts.Days.ToString();

071 }

072 ///

073 /// 计算两个时间的差值,返回的是x天x小时x分钟x秒

074 ///

075 ///

076 ///

077 ///

078 public static string DateDiff(DateTime DateTime1, DateTime DateTime2)

079 {

080 string dateDiff = null;

081 TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);

082 TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);

083 TimeSpan ts = ts1.Subtract(ts2).Duration();

084 //TimeSpan ts=ts1.Add(ts2).Duration();

085 dateDiff = ts.Days.ToString() + "天" + ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟"+ ts.Seconds.ToString() + "秒";

086 return dateDiff;

087 }

088 ///

089 /// 根据英文的星期几返回中文的星期几

090 /// 如WhichDay("Sunday"),返回星期日

091 ///

092 ///

093 ///

094 public static string WhichDay(string enWeek)

095 {

096 switch (enWeek.Trim())

097 {

098 case "Sunday":

099 return "星期日";

100 case "Monday":

101 return "星期一";

102 case "Tuesday":

103 return "星期二";

104 case "Wednesday":

105 return "星期三";

106 case "Thursday":

107 return "星期四";

108 case "Friday":

109 return "星期五";

110 case "Saturday":

111 return "星期六";

112 default:

113 return enWeek;

114 }

115 }

116 ///

117 /// 日期比较

118 ///

119 /// 当前日期

120 /// 输入日期

121 /// 比较天数

122 /// 大于天数返回true,小于返回false

123 public static bool CompareDate(string today, string writeDate, int n)

124 {

125 DateTime Today = Convert.ToDateTime(today);

126 DateTime WriteDate = Convert.ToDateTime(writeDate);

127 WriteDate = WriteDate.AddDays(n);

128 if (Today >= WriteDate)

129 return false;

130 else

131 return true;

132 }

133 ///

134 /// 根据出生年月进行生日提醒

135 ///

136 ///

137 ///

138 public static string GetBirthdayTip(DateTime birthday)

139 {

140 DateTime now = DateTime.Now;

141 //TimeSpan span = DateTime.Now - birthday;

142 int nowMonth = now.Month;

143 int birtMonth = birthday.Month;

144 if (nowMonth == 12 && birtMonth == 1)

145 return string.Format("下月{0}号", birthday.Day);

146 if (nowMonth == 1 && birtMonth == 12)

147 return string.Format("上月{0}号", birthday.Day);

148 int months = now.Month - birthday.Month;

149 //int days = now.Day - birthday.Day;

150 if (months == 1)

151 return string.Format("上月{0}号", birthday.Day);

152 else if (months == -1)

153 return string.Format("下月{0}号", birthday.Day);

154 else if (months == 0)

155 {

156 if (now.Day == birthday.Day)

157 return "今天";

158 return string.Format("本月{0}号", birthday.Day);

159 }

160 else if (months > 1)

161 return string.Format("已过{0}月", months);

162 else

163 return string.Format("{0}月{1}日", birthday.Month, birthday.Day);

164 }

165 }

166}

更多信息请查看IT技术专栏

更多信息请查看网络编程
手机网站地址:C#时间操作类时间计算等
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map