zoukankan      html  css  js  c++  java
  • 时间帮助类

    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
    }

  • 相关阅读:
    Linux网络检测手段汇总
    Hadoop单机搭建
    Nginx之Location模块
    关于STM32驱动DS1302实时时钟的一点思考
    灵感手环第一步——0.96寸OLED显示实验
    把简单做到极致
    KEIL MDK 查看代码量、RAM使用情况--RO-data、RW-data、ZI-data
    关于SPI通信原理与程序实现
    【转载】keil5中加入STM32F10X_HD,USE_STDPERIPH_DRIVER的原因
    关于keil5使用注意事项(预定义、路径包含)
  • 原文地址:https://www.cnblogs.com/moxuanshang/p/4698754.html
Copyright © 2011-2022 走看看