程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET中TimeSpan的用法

ASP.NET中TimeSpan的用法

編輯:關於ASP.NET

     ASP.NET 中,兩個時間相減,得到一個 TimeSpan 實例,TimeSpan 有一些屬性:Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes、Seconds、TotalSeconds、Ticks,注意沒有 TotalTicks。

       

    一、TimeSpan常量、字段

    TimeSpan.MaxValue;            // 10675199.02:48:05.4775807
    TimeSpan.MinValue;            //-10675199.02:48:05.4775808
    TimeSpan.Zero;                //        0.00:00:00.0
    TimeSpan.TicksPerDay;         //一天的   Tick 數: 864000000000
    TimeSpan.TicksPerHour;        //一小時的 Tick 數: 36000000000
    TimeSpan.TicksPerMillisecond; //一毫秒的 Tick 數: 10000
    TimeSpan.TicksPerMinute;      //一分鐘的 Tick 數: 600000000
    TimeSpan.TicksPerSecond;      //一秒鐘的 Tick 數: 10000000

    二、TimeSpan靜態方法

    TimeSpan.Compare();          //對比
    TimeSpan.Equals();           //=       
    TimeSpan.FromDays();         //從天數建立
    TimeSpan.FromHours();        //從小時數建立
    TimeSpan.FromMilliseconds(); //從毫秒數建立
    TimeSpan.FromMinutes();      //從分鐘數建立
    TimeSpan.FromSeconds();      //從秒數建立
    TimeSpan.FromTicks();        //從 Tick 數建立
    TimeSpan.Parse();            //從字符串建立
    TimeSpan.ParseExact();       //從指定格式的字符串建立
    TimeSpan.TryParse();         //嘗試從字符串建立
    TimeSpan.TryParseExact();    //嘗試從指定格式的字符串建立
     

    三、TimeSpan屬性

    Days;              //天部分 Hours; //小時部分
    Milliseconds;      //毫秒部分
    Minutes;           //分部分
    Seconds;           //秒部分
    Ticks;             //Tick 總數
    TotalDays;         //總天數
    TotalHours;        //總小時數
    TotalMilliseconds; //總毫秒數
    TotalMinutes;      //總分鐘數
    TotalSeconds;      //總秒數

    四、TimeSpan方法

     Add();       // + CompareTo(); //比對
    Duration();  //絕對值
    Equals();    //
    Negate();    //取反, + > -、- > +
    Subtract();  // -, Add()的反操縱
    ToString();  //格式化到字符串, .Net 4.0 較之前版本有變動
     

     五、TimeSpan構建對象
     

    protected void Button1_Click(object sender, EventArgs e)
    ...{
        TimeSpan t1 = new TimeSpan(864000000000);        //1.00:00:00
        TimeSpan t2 = new TimeSpan(23, 59, 59);          //23:59:59
        TimeSpan t3 = new TimeSpan(30, 23, 59, 59);      //30.23:59:59
        TimeSpan t4 = new TimeSpan(30, 23, 59, 59, 999); //30.23:59:59.9990000

        double f = 365.25;
        TimeSpan t5 = TimeSpan.FromDays(f);                                         //365.06:00:00
        TimeSpan t6 = TimeSpan.FromHours(f * 24);                                   //365.06:00:00
        TimeSpan t7 = TimeSpan.FromMinutes(f * 24 * 60);                            //365.06:00:00
        TimeSpan t8 = TimeSpan.FromSeconds(f * 24 * 60 * 60);                       //365.06:00:00
        TimeSpan t9 = TimeSpan.FromMilliseconds(f * 24 * 60 * 60 * 1000);           //365.06:00:00
        TimeSpan t0 = TimeSpan.FromTicks((long)(f * 24 * 60 * 60 * 1000 * 10000));  //365.06:00:00

        TextBox1.Text = string.Format("{0}n{1}n{2}n{3}n{4}n{5}n{6}n{7}n{8}n{9}",
                t1, t2, t3, t4, t5, t6, t7, t8, t9, t0
            );
    }

    求離最近發表時間的函數
    public string DateStringFromNow(DateTime dt)   
    {   
    TimeSpan span = DateTime.Now - dt;   
    if (span.TotalDays > 60)   
    {   
    return dt.ToShortDateString();   
    }   
    else if ( span.TotalDays > 30 )   
    {   
    return "1個月前";   
    }   
    else if (span.TotalDays > 14)   
    {   
    return "2周前";   
    }   
    else if (span.TotalDays > 7)   
    {   
    return "1周前";   
    }   
    else if (span.TotalDays > 1)   
    {   
    return string.Format("{0}天前", (int)Math.Floor(span.TotalDays));   
    }   
    else if (span.TotalHours > 1)   
    {   
    return string.Format("{0}小時前", (int)Math.Floor(span.TotalHours));   
    }   
    else if (span.TotalMinutes > 1)   
    {   
    return string.Format("{0}分鐘前", (int)Math.Floor(span.TotalMinutes));   
    }   
    else if (span.TotalSeconds >= 1)   
    {   
    return string.Format("{0}秒前", (int)Math.Floor(span.TotalSeconds));   
    }   
    else  
    {   
    return "1秒前";   
    }   
    }

    DateTime和TimeSpan中的常用成員及其說明

     

    屬性 說明 Date 獲取此實例的日期部分。 Day 獲取此實例所表示的日期為該月中的第幾天。 DayOfWeek 獲取此實例所表示的日期是星期幾。 DayOfYear 獲取此實例所表示的日期是該年中的第幾天。 Hour 獲取此實例所表示日期的小時部分。 Millisecond 獲取此實例所表示日期的毫秒部分。 Minute 獲取此實例所表示日期的分鐘部分。 Month 獲取此實例所表示日期的月份部分。 Now 創建一個DateTime實例,它是此計算機上的當前本地日期和時間。 Second 獲取此實例所表示日期的秒部分。 TimeOfDay 獲取此實例的當天的時間。 Today 獲取當前日期。 Year 獲取此實例所表示日期的年份部分。

    表01:DateTime類的常用屬性及其說明

    方法 說明 Add 將指定的TimeSpan的值加到此實例的值上。 AddDays 將指定的天數加到此實例的值上。 AddHours 將指定的小時數加到此實例的值上。 AddMilliseconds 將指定的毫秒數加到此實例的值上。 AddMinutes 將指定的分鐘數加到此實例的值上。 AddMonths 將指定的月份數加到此實例的值上。 AddSeconds 將指定的秒數加到此實例的值上。 AddYears 將指定的年份數加到此實例的值上。 DaysInMonth 返回指定年份中指定月份的天數。 IsLeapYear 返回指定的年份是否為閏年的指示。 Parse 將日期和時間的指定字符串表示轉換成其等效的DateTime實例。 Subtract 從此實例中減去指定的時間或持續時間。 ToLongDateString 將此實例的值轉換為其等效的長日期字符串表示形式。 ToLongTimeString 將此實例的值轉換為其等效的長時間字符串表示形式。 ToShortTimeString 將此實例的值轉換為其等效的短時間字符串表示形式。 ToShortDateString 將此實例的值轉換為其等效的短日期字符串表示形式。


    表02:DateTime結構的常用方法及其說明

    表03和表04分別是TimeSpan結構的常用屬性和常用方法及其說明:

    屬性 說明 Days 獲取由此實例表示的整天數。 Hours 獲取由此實例表示的整小時數。 Milliseconds 獲取由此實例表示的整毫秒數。 Minutes 獲取由此實例表示的整分鐘數。 Seconds 獲取由此實例表示的整秒數。 Ticks 獲取用刻度表示的此實例的值。 TotalDays 獲取以整天數和天的小數部分表示的此實例的值。 TotalHours 獲取以整小時數和小時的小數部分表示的此實例的值。 TotalMilliseconds 獲取以整毫秒數和毫秒的小數部分表示的此實例的值。 TotalMinutes 獲取以整分鐘數和分鐘的小數部分表示的此實例的值。 TotalSeconds 獲取以整秒數和秒的小數部分表示的此實例的值。

    表03:TimeSpan結構的常用屬性及其說明

    方法 說明 Add 將指定的TimeSpan添加到此實例中。 Duration 返回其值為此實例的絕對值的TimeSpan。 FromDays 返回表示指定天數的TimeSpan,其中對天數的指定精確到最接近的毫秒。 FromHours 返回表示指定小時數的TimeSpan,其中對小時數的指定精確到最接近的毫秒。 FromMilliseconds 返回表示指定毫秒數的TimeSpan。 FromMinutes 返回表示指定分鐘數的TimeSpan,其中對分鐘數的指定精確到最接近的毫秒。 FromSeconds 返回表示指定秒數的TimeSpan,其中對秒數的指定精確到最接近的毫秒。 Subtract 從此實例中減去指定的TimeSpan。

    表04:TimeSpan結構的常用方法及其說明

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved