AI智能
改变未来

【C#日常积累】TimeHelper日期时间处理类

[code]    /// <summary>/// 时间TimeHelper类/// </summary>public class TimeHelper{/// <summary>/// 将时间格式化成 年月日 的形式,如果时间为null,返回当前系统时间/// </summary>/// <param name=\"dt\">年月日分隔符</param>/// <param name=\"Separator\"></param>/// <returns></returns>public string GetFormatDate(DateTime dt, char Separator){if (dt != null && !dt.Equals(DBNull.Value)){string tem = string.Format(\"yyyy{0}MM{1}dd\", Separator, Separator);return dt.ToString(tem);}else{return GetFormatDate(DateTime.Now, Separator);}}/// <summary>/// 将时间格式化成 时分秒 的形式,如果时间为null,返回当前系统时间/// </summary>/// <param name=\"dt\"></param>/// <param name=\"Separator\"></param>/// <returns></returns>public string GetFormatTime(DateTime dt, char Separator) {if (dt != null && !dt.Equals(DBNull.Value)){string tem = string.Format(\"hh{0}mm{1}ss\", Separator, Separator);return dt.ToString(tem);}else{return GetFormatDate(DateTime.Now, Separator);}}/// <summary>/// 把秒转换成分钟/// </summary>/// <returns></returns>public static int SecondToMinute(int Second){decimal mm = (decimal)((decimal)Second / (decimal)60);return Convert.ToInt32(Math.Ceiling(mm));}#region 返回某年某月最后一天/// <summary>/// 返回某年某月最后一天/// </summary>/// <param name=\"year\">年份</param>/// <param name=\"month\">月份</param>/// <returns>日</returns>public static int GetMonthLastDate(int year, int month){DateTime lastDay = new DateTime(year, month, new System.Globalization.GregorianCalendar().GetDaysInMonth(year, month));int Day = lastDay.Day;return Day;}#endregion#region 返回时间差public static string DateDiff(DateTime DateTime1, DateTime DateTime2){string dateDiff = null;try{//TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);//TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);//TimeSpan ts = ts1.Subtract(ts2).Duration();TimeSpan ts = DateTime2 - DateTime1;if (ts.Days >= 1){dateDiff = DateTime1.Month.ToString() + \"月\" + DateTime1.Day.ToString() + \"日\";}else{if (ts.Hours > 1){dateDiff = ts.Hours.ToString() + \"小时前\";}else{dateDiff = ts.Minutes.ToString() + \"分钟前\";}}}catch{ }return dateDiff;}#endregion#region 获得两个日期的间隔/// <summary>/// 获得两个日期的间隔/// </summary>/// <param name=\"DateTime1\">日期一。</param>/// <param name=\"DateTime2\">日期二。</param>/// <returns>日期间隔TimeSpan。</returns>public static TimeSpan DateDiff2(DateTime DateTime1, DateTime DateTime2){TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);TimeSpan ts = ts1.Subtract(ts2).Duration();return ts;}#endregion#region 格式化日期时间/// <summary>/// 格式化日期时间/// </summary>/// <param name=\"dateTime1\">日期时间</param>/// <param name=\"dateMode\">显示模式</param>/// <returns>0-9种模式的日期</returns>public static string FormatDate(DateTime dateTime1, string dateMode){switch (dateMode){case \"0\":return dateTime1.ToString(\"yyyy-MM-dd\");case \"1\":return dateTime1.ToString(\"yyyy-MM-dd HH:mm:ss\");case \"2\":return dateTime1.ToString(\"yyyy/MM/dd\");case \"3\":return dateTime1.ToString(\"yyyy年MM月dd日\");case \"4\":return dateTime1.ToString(\"MM-dd\");case \"5\":return dateTime1.ToString(\"MM/dd\");case \"6\":return dateTime1.ToString(\"MM月dd日\");case \"7\":return dateTime1.ToString(\"yyyy-MM\");case \"8\":return dateTime1.ToString(\"yyyy/MM\");case \"9\":return dateTime1.ToString(\"yyyy年MM月\");default:return dateTime1.ToString();}}#endregion#region 得到随机日期/// <summary>/// 得到随机日期/// </summary>/// <param name=\"time1\">起始日期</param>/// <param name=\"time2\">结束日期</param>/// <returns>间隔日期之间的 随机日期</returns>public static DateTime GetRandomTime(DateTime time1, DateTime time2){Random random = new Random();DateTime minTime = new DateTime();DateTime maxTime = new DateTime();System.TimeSpan ts = new System.TimeSpan(time1.Ticks - time2.Ticks);// 获取两个时间相隔的秒数double dTotalSecontds = ts.TotalSeconds;int iTotalSecontds = 0;if (dTotalSecontds > System.Int32.MaxValue){iTotalSecontds = System.Int32.MaxValue;}else if (dTotalSecontds < System.Int32.MinValue){iTotalSecontds = System.Int32.MinValue;}else{iTotalSecontds = (int)dTotalSecontds;}if (iTotalSecontds > 0){minTime = time2;maxTime = time1;}else if (iTotalSecontds < 0){minTime = time1;maxTime = time2;}else{return time1;}int maxValue = iTotalSecontds;if (iTotalSecontds <= System.Int32.MinValue)maxValue = System.Int32.MinValue + 1;int i = random.Next(System.Math.Abs(maxValue));return minTime.AddSeconds(i);}#endregion}

 

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 【C#日常积累】TimeHelper日期时间处理类