C#時間操作類分享
本文實例為大家分享了C#時間操作類的具體代碼,供大家參考,具體內(nèi)容如下
using System; namespace DotNet.Utilities { /// <summary> /// 時間類 /// 1、SecondToMinute(int Second) 把秒轉(zhuǎn)換成分鐘 /// </summary> public class TimeHelper { /// <summary> /// 將時間格式化成 年月日 的形式,如果時間為null,返回當前系統(tǒng)時間 /// </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,返回當前系統(tǒng)時間 /// </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> /// 把秒轉(zhuǎn)換成分鐘 /// </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">結(jié)束日期</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); // 獲取兩個時間相隔的秒數(shù) 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 } }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持我們。
上一篇:C#深度優(yōu)先搜索算法
欄 目:C#教程
下一篇:C#事件實例詳解
本文標題:C#時間操作類分享
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/5637.html
您可能感興趣的文章
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已安裝軟件變化的方法
- 01-10C#實現(xiàn)實體類與字符串互相轉(zhuǎn)換的方法
- 01-10C#實現(xiàn)判斷當前操作用戶管理角色的方法
- 01-10Extjs4如何處理后臺json數(shù)據(jù)中日期和時間
- 01-10C#通過Semaphore類控制線程隊列的方法
- 01-10C#3.0使用EventLog類寫Windows事件日志的方法
- 01-10WinForm實現(xiàn)程序一段時間不運行自動關閉的方法
- 01-10C#中DataGridView常用操作實例小結(jié)
- 01-10C#操作ftp類完整實例
- 01-10asp.net中XML如何做增刪改查操作


閱讀排行
本欄相關
- 01-10C#通過反射獲取當前工程中所有窗體并
- 01-10關于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻播放器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已
隨機閱讀
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實例總結(jié)
- 04-02jquery與jsp,用jquery
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05DEDE織夢data目錄下的sessions文件夾有什