在.net项目中,对DateTime的相关操作使用的比较多,例如时间格式的转换,时间间隔的计算,时间所属的区间计算等,在这些要求中,虽然使用起来较为的简单,但是在转换的过程中,较为容易出错,花费的时间也较多,现在总结一些常用的时间操作方法,以便在项目开发中节省时间。
一下代码中需要使用到如下的实体类:
/// <summary> /// 周(星期)信息实体类 /// </summary> [Serializable] public class WeekInfo { /// <summary> /// 周(星期)信息实体类 /// </summary> public WeekInfo() { Number = 0; BeginDate = DateTime.MinValue; EndDate = DateTime.MaxValue; } /// <summary> /// 周数 /// </summary> public int Number { get; set; } /// <summary> /// 开始时间 /// </summary> public DateTime BeginDate { get; set; } /// <summary> /// 结束时间 /// </summary> public DateTime EndDate { get; set; } /// <summary> /// 输出第几周和日期间隔 /// <para>默认格式:</para> /// <para>第几周,从2012年12月21日至2112年12月21日。</para> /// </summary> /// <returns>第几周和日期间隔</returns> public override string ToString() { return string.Format("第{0}周,从{1}至{2}。", Number, BeginDate.ToString("yyyy年MM月dd日"), EndDate.ToString("yyyy年MM月dd日")); } /// <summary> /// 输出第几周 /// </summary> /// <param name="isFill">少于2位时是否补零</param> /// <returns>第几周</returns> public string GetWeekString(bool isFill) { string format = "第{0}周"; if (isFill && Number < 10) format = "第0{0}周"; return string.Format(format, Number); } /// <summary> /// 输出日期间隔 /// </summary> /// <param name="inputString">输出格式化字符串</param> /// <param name="dateString">日期格式化字符串</param> /// <returns>日期间隔</returns> public string GetDateString(string inputString, string dateString) { if (string.IsNullOrWhiteSpace(inputString) || string.IsNullOrWhiteSpace(dateString)) return null; try { return string.Format(inputString, BeginDate.ToString(dateString), EndDate.ToString(dateString)); } catch (Exception ex) { return ex.Message; } } }