Timespan的使用(收集两位同仁的资料)

TimeSpan的用法

TimeSpan是用来表示一个时间段的实例,两个时间的差可以构成一个TimeSpan实例,现在就来简单介绍一下几点重要的用法:

a 先来介绍几个方法

TimeSpan.Minutes(其他时间比如天数,小时数,秒数都一样的情况下得到的分钟数的差),其他的Hours,Second一样

DateTime.Tick :是一个计时周期,表示一百纳秒,即一千万分之一秒,那么 Ticks 在这里表示总共相差多少个时间周期,即:9 * 24 * 3600 * 10000000 + 23 * 3600 * 10000000 + 59 * 60 * 10000000 + 59 * 10000000 = 8639990000000。3600 是一小时 的秒数

TimeSpan.TotalDays:两个时间段相差的日数,其他的TotalHours,TotalMinutes,TotalSeconds 一样

b 两个时间的差

string time1 = "2010-5-26 8:10:00";

string time2 = "2010-5-26 18:20:00";

DateTime t1 = Convert.ToDateTime(time1);

DateTime t2 = Convert.ToDateTime(time2);

TimeSpan ts1=t2-t1;

string tsMin=ts1.Minutes.ToString();

TimeSpan ts11=new TimeSpan(t1.Tick);

TimeSpan ts22=new TimeSpan(t2.Tick);

string diff=ts22.Subtract(ts11).TotalMinutes.ToString();

Subtract:表示两个时间段的差

diff:就表示两个时间相差的分钟数,上面的例子就是610分钟。

得到一个 TimeSpan 实例,TimeSpan 有一些属性:Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes、Seconds、TotalSeconds、Ticks,注意没有 TotalTicks。

这些属性名称开始理解有些困难,但阅读本文后,相应您一定茅塞顿开。

举例说明

  • 时间 1 是 2010-1-2 8:43:35;
  • 时间 2 是 2010-1-12 8:43:34。

用时间 2 减时间 1,得到一个 TimeSpan 实例。

那么时间 2 比时间 1 多 9 天 23 小时 59 分 59 秒。

那么,Days 就是 9,Hours 就是 23,Minutes 就是 59,Seconds 就是 59。

所以以后想知道两个时间段的差就容易的多





TimeSpan ts1 = new TimeSpan(DateTime.Now.Ticks); //获取当前时间的刻度数

//你的代码或者其他操作

TimeSpan ts2 = new TimeSpan(DateTime.Now.Ticks); 
TimeSpan ts = ts2.Subtract(ts1).Duration();
//时间差的绝对值 ,测试你的代码运行了多长时间。

String spanTime = ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "" + ts.Seconds.ToString() + ""; 
//
X小时XX秒的格式显示执行时间

C#时间间隔计算的一些说明:
TimeSpan
值包含了许多属性与方法,用于访问或处理一个TimeSpan 
下面的列表涵盖了其中的一部分: 
Add
:与另一个TimeSpan值相加。 
Days:
返回用天数计算的TimeSpan值。 
Duration:
获取TimeSpan的绝对值。 
Hours:
返回用小时计算的TimeSpan 
Milliseconds:
返回用毫秒计算的TimeSpan值。 
Minutes:
返回用分钟计算的TimeSpan值。 
Negate:
返回当前实例的相反数。 
Seconds:
返回用秒计算的TimeSpan值。 
Subtract:
从中减去另一个TimeSpan值。 
Ticks:
返回TimeSpan值的tick数。 
TotalDays:
返回TimeSpan值表示的天数。 
TotalHours:
返回TimeSpan值表示的小时数。 
TotalMilliseconds:
返回TimeSpan值表示的毫秒数。 
TotalMinutes:
返回TimeSpan值表示的分钟数。 
TotalSeconds:
返回TimeSpan值表示的秒数。

 

[c-sharp]  view plain copy
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Text;  
  7. using System.Windows.Forms;  
  8.   
  9. namespace TimeSpanUse  
  10. {  
  11.     public partial class Form1 : Form  
  12.     {  
  13.         private TimeSpan tsBegin ;  
  14.         private TimeSpan tsEnd;  
  15.         public Form1()  
  16.         {  
  17.             InitializeComponent();  
  18.         }  
  19.   
  20.         private void btBegin_Click(object sender, EventArgs e)  
  21.         {  
  22.             this.lblBegin.Text = DateTime.Now.ToLongTimeString();  
  23.             tsBegin = new TimeSpan(DateTime.Now.Ticks);  
  24.         }  
  25.   
  26.         private void btStop_Click(object sender, EventArgs e)  
  27.         {  
  28.             this.lblEnd.Text = DateTime.Now.ToLongTimeString();  
  29.             tsEnd = new TimeSpan(DateTime.Now.Ticks);  
  30.             TimeSpan ts = tsEnd.Subtract(tsBegin).Duration();//:获取TimeSpan的绝对值  
  31.             String spanTime = ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分" + ts.Seconds.ToString() + "秒";  
  32.             this.lblPass.Text = spanTime;  
  33.         }  
  34.   
  35.         private void Form1_Load(object sender, EventArgs e)  
  36.         {  
  37.   
  38.             this.timer1.Interval = 1 * 1000;//1秒  
  39.             this.timer1.Enabled = true;//开始计时  
  40.             this.lblNow.Text = DateTime.Now.ToLongTimeString();  
  41.         }  
  42.         /// <summary>  
  43.         /// 间隔时间执行事情  
  44.         /// </summary>  
  45.         /// <param name="sender"></param>  
  46.         /// <param name="e"></param>  
  47.         private void timer1_Tick(object sender, EventArgs e)  
  48.         {  
  49.             //TextBox1.Text   =   DateTime.Now.ToString("yyyy-MM-dd   HH:mm:ss")     
  50.             this.lblNow .Text = DateTime.Now.ToLongTimeString();  
  51.         }  
  52.     }  
  53. }  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值