C#之 System.TimeSpan 结构


TimeSpan 表示一个时间间隔, 如:


protected void Button1_Click(object sender, EventArgs e)

{

    DateTime dt1 = new DateTime(2010, 1, 2, 3, 4, 5);

    DateTime dt2 = new DateTime(2011, 6, 6, 6, 6, 6);



    TimeSpan ts = dt2 - dt1;



    TextBox1.Text = ts.ToString(); //520.03:02:01 ( 这表示 520 天 3 小时 2 分 1 秒)

}



其默认的字符串格式:


protected void Button1_Click(object sender, EventArgs e)

{

    TimeSpan ts = TimeSpan.MaxValue;

    TextBox1.Text = ts.ToString(); //10675199.02:48:05.4775807 (天.时:分:秒.毫秒)

}



成员:


/* 常量、字段 */

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.Compare();          //对比

TimeSpan.Equals();           //=       

TimeSpan.FromDays();         //从天数建立

TimeSpan.FromHours();        //从小时数建立

TimeSpan.FromMilliseconds(); //从毫秒数建立

TimeSpan.FromMinutes();      //从分钟数建立

TimeSpan.FromSeconds();      //从秒数建立

TimeSpan.FromTicks();        //从 Tick 数建立

TimeSpan.Parse();            //从字符串建立

TimeSpan.ParseExact();       //从指定格式的字符串建立

TimeSpan.TryParse();         //尝试从字符串建立

TimeSpan.TryParseExact();    //尝试从指定格式的字符串建立



/* 属性 */

Days;              //天部分

Hours;             //小时部分

Milliseconds;      //毫秒部分

Minutes;           //分部分

Seconds;           //秒部分

Ticks;             //Tick 总数

TotalDays;         //总天数

TotalHours;        //总小时数

TotalMilliseconds; //总毫秒数

TotalMinutes;      //总分钟数

TotalSeconds;      //总秒数



/* 方法 */

Add();       // +

CompareTo(); //比对

Duration();  //绝对值

Equals();    //

Negate();    //取反, + > -、- > +

Subtract();  // -, Add()的反操纵

ToString();  //格式化到字符串, .Net 4.0 较之前版本有变动



构建对象:


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

        );

}



Parse():


protected void Button1_Click(object sender, EventArgs e)

{

    TimeSpan ts = TimeSpan.Parse("123.4:5:6.789");

    TextBox1.Text = ts.ToString(); //123.04:05:06.7890000

}



属性测试:


protected void Button1_Click(object sender, EventArgs e)

{

    TimeSpan ts = new TimeSpan(1, 2, 3, 4, 5);



    int n1 = ts.Days;                 //1

    int n2 = ts.Hours;                //2

    int n3 = ts.Minutes;              //3

    int n4 = ts.Seconds;              //4

    int n5 = ts.Milliseconds;         //5



    long tick = ts.Ticks;             //937840050000



    double f1 = ts.TotalDays;         //1.08546302083333

    double f2 = ts.TotalHours;        //26.0511125

    double f3 = ts.TotalMinutes;      //1563.06675

    double f4 = ts.TotalSeconds;      //93784.005

    double f5 = ts.TotalMilliseconds; //93784005



    TextBox1.Text = string.Format("{0}\n{1}\n{2}\n{3}\n{4}\n{5}\n{6}\n{7}\n{8}\n{9}\n{10}",

            n1, n2, n3, n4, n5, tick, f1, f2, f3, f4, f5

        );

}



Duration()、Negate():


protected void Button1_Click(object sender, EventArgs e)

{

    DateTime dt1 = new DateTime(2010, 1, 2, 3, 4, 5);

    DateTime dt2 = new DateTime(2011, 6, 6, 6, 6, 6);



    TimeSpan ts1 = dt1 - dt2;      //-520.03:02:01

    TimeSpan ts2 = ts1.Duration(); // 520.03:02:01

    TimeSpan ts3 = ts2.Negate();   //-520.03:02:01

    TimeSpan ts4 = -ts3;           // 520.03:02:01



    TextBox1.Text = string.Concat(ts1, "\n", ts2, "\n", ts3, "\n", ts4);

}



格式化输出:


protected void Button1_Click(object sender, EventArgs e)

{

    TimeSpan ts = new TimeSpan();



    string s1 = ts.ToString();    //00:00:00

    string s2 = ts.ToString("c"); //00:00:00

    string s3 = ts.ToString("g"); //0:00:00

    string s4 = ts.ToString("G"); //0:00:00:00.0000000



    string s5 = string.Format("{0}天{1}时{2}分{3}秒{4}毫秒", 

            ts.TotalDays, ts.TotalHours, ts.TotalMinutes, ts.TotalSeconds, ts.TotalMilliseconds

        );                        //0天0时0分0秒0毫秒



    TextBox1.Text = string.Concat(s1, "\n", s2, "\n", s3, "\n", s4, "\n", s5);

}

 

你可能感兴趣的:(System)