zoukankan      html  css  js  c++  java
  • C# 时间操作类

    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
        }
    }
    TimeHelper
  • 相关阅读:
    大龄开发人员如何破局
    在c++MFC下用PCL显示操作点云文件 MFC对话框显示操作PCL点云
    记录学习图像处理过程中不错的教程博客
    做三维模型识别目标定位配准测量的有关资料记录
    OpenCASCADE(一) VS2017+OpenCASCADE+MFC +win10下载配置安装运行单文档程序画个基本图形
    关于opengl中的三维矩阵平移代码,矩阵旋转代码,推导过程理解 OpenGL计算机图形学的一些必要矩阵运算知识 glTranslatef(x,y,z)glRotatef(angle,x,y,z)函数详解
    深度学习系列教程目录
    c/c++ 2019公司面试题目录
    c++ 知道旋转平移变换前后矩阵向量值 求旋转变换矩阵c++/c#代码 知道两个向量求他们的旋转变换矩阵
    OpenCV与MFC实战之图像处理 样本采集小工具制作 c++MFC课程设计
  • 原文地址:https://www.cnblogs.com/Liyuting/p/7059766.html
Copyright © 2011-2022 走看看