学用 ASP.Net 之 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);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值