• 时间帮助类


    MXS&Vincene  ─╄OvЁ  &0000011 ─╄OvЁ  MXS&Vincene 

    MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好,但是绝大部分人是死在明天晚上,只有那些真正的英雄才能见到后天的太阳。

    MXS&Vincene  ─╄OvЁ:We're here to put a dent in the universe. Otherwise why else even be here? 

     

    正文>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    /// <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
    }

  • 相关阅读:
    【Python3之匿名函数及递归】
    【Python3之模块及包的导入】
    :nth-child和:nth-of-type的区别
    JavaScript ES6中export及export default的区别以及import的用法
    vue中npm run dev运行项目不能自动打开浏览器! 以及 webstorm跑vue项目jshint一直提示错误问题的解决方法!
    SEO优化之HTML代码优化最重要的5个标签
    清除浮动小记,兼容Ie6,7
    JavaScript继承基础讲解,原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承
    面向对象JS基础讲解,工厂模式、构造函数模式、原型模式、混合模式、动态原型模式
    纯CSS实现垂直居中的几种方法
  • 原文地址:https://www.cnblogs.com/moxuanshang/p/4698754.html
Copyright © 2020-2023  润新知