好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C#时间操作类分享

本文实例为大家分享了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

  }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

dy("nrwz");

查看更多关于C#时间操作类分享的详细内容...

  阅读:40次