asp.net 計算時間日期間隔實現代碼

來源:互聯網
上載者:User

先來看個最簡單的計算時間差的.net代碼

 代碼如下 複製代碼

DateTime dt1 = new DateTime(2005,5,6,15,36,05);
   DateTime dt2 = new DateTime(2005,6,13,11,32,05);
   System.TimeSpan st = dt2.sSubtract(dt1);
   this.TextBox1.Text = st.Days.ToString()+"天"
    +st.Hours.ToString()+"小時"
    +st.Minutes.ToString()+"分鐘"
    +st.Seconds.ToString()+"秒";

執行個體,可以實現日期時間的天數,秒數等操作,像BBS幾天前發的內容這種

函數:

 代碼如下 複製代碼
///   <summary>
///   返回兩個日期之間的時間間隔(y:年份間隔、M:月份間隔、d:天數間隔、h:小時間隔、m:分鐘間隔、s:秒鐘間隔)
///   </summary>
///   <param   name= "Date1 "> 開始日期 </param>
///   <param   name= "Date2 "> 結束日期 </param>
///   <param   name= "Interval "> 間隔標誌 </param>
///   <returns> 返回間隔標誌指定的時間間隔 </returns>
private   int   DateDiff(System.DateTime   Date1,System.DateTime   Date2,string   Interval)
{
double   dblYearLen=365;//年的長度,365天
double   dblMonthLen=(365/12);//每個月平均的天數
System.TimeSpan   objT;
objT=Date2.Subtract(Date1);
switch(Interval)
{
case   "y "://返回日期的年份間隔
return   System.Convert.ToInt32(objT.Days/dblYearLen);
case   "M "://返回日期的月份間隔
return   System.Convert.ToInt32(objT.Days/dblMonthLen);
case   "d "://返回日期的天數間隔
return   objT.Days;
case   "h "://返回日期的小時間隔
return   System.Convert.ToInt32(objT.TotalHours);
case   "m "://返回日期的分鐘間隔
return   System.Convert.ToInt32(objT.TotalMinutes);
case   "s "://返回日期的秒鐘間隔
return   System.Convert.ToInt32(objT.TotalSeconds);
default:
break;
}
return   0;
}

使用方法:

 代碼如下 複製代碼

private   void   Form1_Load(object   sender,   System.EventArgs   e)
{

System.DateTime   dt1,dt2;
dt1=new   DateTime(2005,5,1);
dt2=new   DateTime(2005,6,30);
System.Console.WriteLine(this.DateDiff(dt1,dt2, "Y "));
System.Console.WriteLine(this.DateDiff(dt1,dt2, "M "));
System.Console.WriteLine(this.DateDiff(dt1,dt2, "d "));
System.Console.WriteLine(this.DateDiff(dt1,dt2, "h "));
System.Console.WriteLine(this.DateDiff(dt1,dt2, "m "));
System.Console.WriteLine(this.DateDiff(dt1,dt2, "s "));
}

執行個體

 代碼如下 複製代碼

DateTime dt1,dt2;//如果不是時間類型的話,轉換成時間類型
TimeSpan d=dt1.Subtract(dt2);
d.Days=...//這是天數
d.Minutes=...//這是分鐘

public  enum DateInterval
{
    Second, Minute, Hour, Day, Week, Month, Quarter, Year
}
public sealed class DateTimeManger
{
    private DateTimeManger()
    {}//end of default constructor
    public static long DateDiff(DateInterval Interval, System.DateTime StartDate,    System.DateTime EndDate )
    {
        long lngDateDiffValue = 0;
        System.TimeSpan TS = new System.TimeSpan(EndDate.Ticks - StartDate.Ticks);
        switch (Interval)
        {
            case DateInterval.Second:
            lngDateDiffValue = (long) TS.TotalSeconds;
            break;
            case DateInterval.Minute:
            lngDateDiffValue = (long) TS.TotalMinutes;
            break;
            case DateInterval.Hour:
            lngDateDiffValue = (long)TS.TotalHours;
            break;                                   
            case DateInterval.Day:
            lngDateDiffValue = (long) TS.Days;
            break;
            case DateInterval.Week:
            lngDateDiffValue = (long)( TS.Days / 7);
            break;
            case DateInterval.Month:
            lngDateDiffValue = (long)( TS.Days / 30);
            break;
            case DateInterval.Quarter:
            lngDateDiffValue = (long)( (TS.Days / 30) / 3 );
            break;
            case DateInterval.Year:
            lngDateDiffValue = (long)( TS.Days / 365);
            break;
        }
        return (lngDateDiffValue);
    }//end of DateDiff
}//end of class

調用 方法很簡單以函數形式就行了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.