• [时间操作] C#TimeHelper时间格式化帮助类 (转载)


    点击下载 TimeHelper.rar

    主要功能如下

    1.将时间格式化成 年月日 的形式,如果时间为null,返回当前系统时间
    2.将时间格式化成 时分秒 的形式,如果时间为null,返回当前系统时间
    3.把秒转换成分钟
    4.返回某年某月最后一天
    5.返回时间差
    6.获得两个日期的间隔
    7.格式化日期时间
    8.得到随机日期

    看下面代码吧

    /// <summary>
    /// 类说明:时间类SecondToMinute(int Second) 把秒转换成分钟
    /// 编 码 人:苏飞
    /// 联系方式:361983679  
    /// 更新网站:[url=http://www.sufeinet.com/thread-655-1-1.html]http://www.sufeinet.com/thread-655-1-1.html[/url]
    /// </summary>
    using System;
     
    namespace DotNet.Utilities
    {
        /// <summary>
        /// 时间类
        /// 1、SecondToMinute(int Second) 把秒转换成分钟
        /// </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
        }
    }
  • 相关阅读:
    PAT 甲级 1128 N Queens Puzzle
    HDU 1995 R-汉诺塔V
    PAT L1-039 古风排版
    PAT L2-028 秀恩爱分得快
    ZOJ 2060 A-Fibonacci Again
    HDU 2079 选课时间
    HDU 1016 Prime Ring Problem
    理论相关概念原理
    单播字符、字符串收发
    OSAL的原理
  • 原文地址:https://www.cnblogs.com/lizeyan/p/3635563.html
Copyright © 2020-2023  润新知