admin 管理员组

文章数量: 1086019


2024年3月9日发(作者:电脑编程圣诞树代码)

C# 计算时间差 用timespan函数

TimeSpan 结构 表示一个时间间隔。

命名空间:System

程序集:mscorlib(在 中)

me值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。因此,你可以用DateTime值类型来描述任何在想象范围之内的时间。一个DateTime值代表了一个具体的时刻

an值包含了许多属性与方法,用于访问或处理一个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值表示的秒数。

TimeSpan( 10, 20, 30, 40, 50 ) 10.20:30:40.0500000

TimeSpan( 1111, 2222, 3333, 4444, 5555 ) 1205.22:47:09.5550000

TimeSpan (Int32, Int32, Int32) 将新的 TimeSpan 初始化为指定的小时数、分钟数和秒数。

TimeSpan (Int32, Int32, Int32, Int32) 将新的 TimeSpan 初始化为指定的天数、小时数、分钟数和秒数。

TimeSpan (Int32, Int32, Int32, Int32, Int32) 将新的 TimeSpan 初始化为指定的天数、小时数、分钟数、秒数和毫秒数。

中,两个时间相减,得到一个 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。

再来看 Ticks,Tick 是一个计时周期,表示一百纳秒,即一千万分之一秒,那么 Ticks 在这里表示总共相差多少个时间周期,即:9 * 24 * 3600 * 10000000 + 23 * 3600 * 10000000

+ 59 * 60 * 10000000 + 59 * 10000000 = 8639990000000。3600 是一小时的秒数。

TotalDays 就是把 Ticks 换算成日数,即:8639990000000 / (10000000 * 24 * 3600)

= 9.99998842592593。

TotalHours 就是把 Ticks 换算成小时数,即:8639990000000 / (10000000 * 3600)

= 239.999722222222。

TotalMinutes 就是把 Ticks 换算成分钟数,即:8639990000000 / (10000000 * 60)

= 14399.9833333333。

TotalSeconds 就是把 Ticks 换算成秒数,即:8639990000000 / (10000000) = 863999。

负数

上面是较晚的日期减较早的日期,所以各属性值为正数,如果是较早的日期减较晚的日期,则属性值为负数。

TimeSpan(

int days,

int hours,

int minutes,

int seconds

)

求离最近发表时间的函数

public string DateStringFromNow(DateTime dt)

{

TimeSpan span = - dt;

if (ays > 60)

{

return tDateString();

}

else if ( ays > 30 )

{

return "1个月前";

}

else if (ays > 14)

{

return "2周前";

}

else if (ays > 7)

{

return "1周前";

}

else if (ays > 1)

{

return ("{0}天前", (int)(ays));

}

else if (ours > 1)

{

return ("{0}小时前", (int)(ours));

}

else if (inutes > 1)

{

return ("{0}分钟前", (int)(inutes));

}

else if (econds >= 1)

{

return ("{0}秒前", (int)(econds));

}

else

{

return "1秒前";

}

}

C#中使用TimeSpan计算两个时间的差值

可以反加两个日期之间任何一个时间单位。

private string DateDiff(DateTime DateTime1, DateTime DateTime2)

{string dateDiff = null;

TimeSpan ts1 = new TimeSpan();

TimeSpan ts2 = new TimeSpan();

TimeSpan ts = ct(ts2).Duration();

dateDiff = ng()+"天"+ ng()+"小时"+

ng()+"分钟"+ ng()+"秒";

return dateDiff;

}

TimeSpan ts = Date1 - Date2;

double dDays = ays;//带小数的天数,比如1天12小时结果就是1.5

int nDays = ;//整数天数,1天12小时或者1天20小时结果都是1

说明:

me值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。因此,你可以用DateTime值类型来描述任何在想象范围之内的时间。一个DateTime值代表了一个具体的时刻

an值包含了许多属性与方法,用于访问或处理一个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值表示的秒数。

///

/// 日期比较

///

/// 当前日期

/// 输入日期

/// 比较天数

/// 大于天数返回true,小于返回false

private bool CompareDate(string today, string writeDate, int n)

{

DateTime Today = Time(today);

DateTime WriteDate = Time(writeDate);

WriteDate = s(n);

if (Today >= WriteDate)

return false;

else

return true;

}

示例代码:

(责任编辑:麦田守望者)

在定义Date数据类型时候,必须注意下面三点:

1. Date数值必须以数字符号"#"括起来。

2. Date数值中的日期数据可有可无,如果有必须符合格式"m/d/yyyy"。

3. Date数值中的时间数据可有可无,如果有必须和日期数据通过空格分开,并且时分秒之间以":"分开。

一.DateTime和TimeSpan的关系和区别:

DateTime和TimeSpan是Visual Basic .Net中用以处理时间日期类型数据的二个主要的结构,这二者的区别在于,DatTime表示一个固定的时间,而TimeSpan表示的是一个时间间隔, 即一段时间。在下面介绍的程序示例中,TimeSpan就用以当前时间和给定时间之差。

二.DateTime和TimeSpan中的常用成员及其说明:

DateTime结构和TimeSpan结构提供了丰富的方法和属性,通过这些方法和属性,几乎可以直接处理任何时间日期类型数据。表01和表02分别是DateTime结构的常用属性和常用方法及其说明:

属性

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

FromDays

返回其值为此实例的绝对值的TimeSpan。

返回表示指定天数的TimeSpan,其中对天数的指定精确到最接近的毫秒。

FromHours 返回表示指定小时数的TimeSpan,其中对小时数的指定精确到最接近的毫秒。

FromMilliseconds 返回表示指定毫秒数的TimeSpan。

FromMinutes

毫秒。

FromSeconds

Subtract

表04:TimeSpan结构的常用方法及其说明

返回表示指定秒数的TimeSpan,其中对秒数的指定精确到最接近的毫秒。

返回表示指定分钟数的TimeSpan,其中对分钟数的指定精确到最接近的从此实例中减去指定的TimeSpan。


本文标签: 表示 时间 实例 指定 返回

更多相关文章

Win10系统怎么关闭自动设置时间功能?

3月前

命令行输入services.msc 找到【Windows Time】服务,启动类型选择禁用,然后点击停止,再确认.

Win10计算机首次使用时间,Win10系统如何查看开机用时?Windows10系统查看开机时间的两种方法...

3月前

一、系统自带功能 电脑接通电源进入Windows界面用时,实际上包括两个方面,一是BIOS所用时间,一是系统启动时间,所以Win10系统开机所用时间正确

windows linux 双系统 设置 开机选择默认启动系统 等待时间

3月前

要修改的文件:etcdefaultgrub 修改项:GRUB_DEFAULT0 # 从0开始计数,默认是0,想要哪个当启动项就改成相应的数字GRUB_TI

Windows系统开机启动时间

3月前

360的开机启动时间界面从大二开始伴随我们一直到现在,好奇这个时间是怎样获取的,在逆向时遇到Windows的一个API:GetTickCount( ),

华为路由器时区以及时间配置

3月前

路由器时区以及时间配置&#xff1a; 代码如下&#xff1a; <Huawei>clock timezone bj add 8<Huawei>clock d<Huawei>

English语法_时间副词

3月前

Contents 1> 时间副词前&#xff0c;不可加介词1.1> next week1.2> next week 2> 时间副词&#xff0c;可放句首 或 句尾3> before ,aft

路由器php系统时间设置时间设置时间设置时间设置时间,华为WS5100路由器如何在wifi定时关闭时间段继续上网?...

3月前

华为路由WS5100开启了wifi定时关闭功能&#xff0c;想要在关闭时间段继续上网&#xff0c;该怎么设置呢&#xff1f;下面我们就来看看详细的教程。 方法一&#xff1a;通过华--为智能家居 AP

电脑修改服务器时间,Windows 时间服务工具和设置

3月前

Windows 时间服务工具和设置 04282021 本文内容 适用于&#xff1a;Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows

如何设置windows系统同步NTP服务器的时间间隔

2月前

进入注册表 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpClient 设置 SpecialPollInterval  1

今天我花一个通宵的时间安装Windows11系统居然失败,忍不住哭了!

2月前

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;web开发者、设计师、技术分享博主 &#x1f40b; 希望大家多多支持一下, 我们一起进步&#xff01;&am

debianwindows10 双系统 时间设置

2月前

第一种方法&#xff0c;linux 禁用UTC timedatectl set-local-rtc 1 --adjust-system-clock   禁用UTC&#xff0c;使用本地时间&#xff0c;使用

解决ESP8266无法退出透传问题以及获取网络时间以及天气方法

2月前

网上很多配置ESP8266的教程,但是遇到无法退出透传模式的情况却没有找得到答案,不知道是大家都没遇到还是怎么样,以下是我的解决方法:实测有效 先发送“+++”(三个加号)(如果是在串口调试助手调试,取消勾选发送新行),接着再发送一条空白

Curl【实例 01】curl下载使用及cmd实例脚本分享(通过请求下载文件)

2月前

Curl 官方下载地址 可下载不同平台不同版本的安装包&#xff0c;本次使用的是Windows解压版本curl-8.0.1_9-win32-mingw.zip。curl下载使用及cmd实例 1.是什么1.1 curl1.2 b

C#修改Windows系统时间

2月前

1. 修改系统时间的Windows API [DllImport("Kernel32.dll")]public static extern void GetLocalTime(ref SystemTime lpSyst

系统时间与服务器时间同步出错,Win7电脑时间同步出错是怎么回事?系统时间同步失败如何解决?...

1月前

Win7电脑时间同步出错是怎么回事&#xff1f;系统在后台同步internet时间的之后Win7系统就可以获得最准确的时间&#xff0c;当用户发现系统时间老是同步失败的时候该如何解决问题&#xff1f;我们应该从

电脑时间不准怎么办?电脑时间不准怎么修复?

1月前

使用电脑时&#xff0c;当你想知道时间的时候会下意识性去瞄一下电脑的右下角&#xff0c;因为电脑用的多了会慢慢产生这种反应&#xff0c;久而久之也就习惯成自然。有一天&#xff0c;突然发现电脑时间不准

Win7电脑激活时间即将到期怎么更改系统的激活码?

1月前

虽然说win7微软早就已经停止了服务,但是许多用户在使用的时候还是提示激活码即将到期,那么正常情况下我们应该怎么清除电脑中的激活码换上新的呢?下面小编就带着大家一起看看吧! 操作方法: 1、首先在桌面上右键,选择新建一个文本文档。 2、输入

解决Windows与Ubuntu双系统时间同步问题

1月前

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http:blog.csdnjiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 1问

用Windows命令行如何检查Windows系统补丁(KBxxxxxx)的最后一次安装时间?

1月前

在打开的DOS命令窗口中&#xff0c;输入以下命令&#xff1a; wmic qfe list full format:htable >C:Temphotfixes.htm 这个命令会创建一个已安装微软补丁

怎样让Windows10系统的时间显示到秒——且可手动修改系统的时间

1月前

一、实现效果 ①实现让Windows系统底部导航栏右下角的时间显示到秒; ②实现手动修改系统的时间内容; 二、实现让Windows系统的时间显示到秒 2.1、打开运行窗口 同时按下键盘的Windows+R键即可打开运行窗口

发表评论

全部评论 0
暂无评论

推荐文章

Error: Call to undefined function thread_tid_find() in /www/wwwroot/roclinux.cn/tmp/_view_template_quzhiwa_htm_aside.inc.htm:5 Stack trace: #0 /www/wwwroot/roclinux.cn/tmp/view_template_quzhiwa_htm_read.htm(146): include() #1 /www/wwwroot/roclinux.cn/tmp/route_read.php(205): include('/www/wwwroot/ro...') #2 /www/wwwroot/roclinux.cn/tmp/index.inc.php(129): include('/www/wwwroot/ro...') #3 /www/wwwroot/roclinux.cn/index.php(29): include('/www/wwwroot/ro...') #4 {main}
TimeSpan('T','2002-10-1','2002-1-1')  
TimeSpan('d','2002-10-1','2002-1-1')  
TimeSpan('h','2002-10-1','2002-1-1')  
TimeSpan('u','2002-10-1','2002-1-1')  
TimeSpan('m','2002-10-1','2002-1-1')  
TimeSpan('s','2002-10-1','2002-1-1')  
TimeSpan('D','2002-10-1','2002-1-1')