C#计算时间间隔和时间所属区间的通用操作方法

时间:2022-02-09 01:27:11

在.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;                 }             }         }