C#怎么获取两个DateTime值的时差

C#怎么获取两个DateTime值的时差,第1张

C# 可以使用TimeSpan计算两个时间差,方法如下:

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

private string DateDiff(DateTime DateTime1, DateTime DateTime2)

{string dateDiff = null;

TimeSpan ts = DateTime1Subtract(DateTime2)Duration();

dateDiff = tsDaysToString()+"天"+ tsHoursToString()+"小时"+ tsMinutesToString()+"分钟"+ tsSecondsToString()+"秒";

return dateDiff;

}

说明:

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

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

DateTime d = DateTimeNowAddSeconds(100);添加100秒;

2DateTime d = DateTimeNowAddSeconds(-100);送去100秒。

C#获取两个DateTime值的时差:

1两个DateTime之间相减。

using System;

namespace ConsoleApplication1 {class Program}static void Main(string[] args)

{DateTime t0 = new DateTime(2016, 1, 1);

DateTime t1 = DateTimeNow。

2求时间差。

TimeSpan ts = t1 - t0;

ConsoleWriteLine("时间差,以秒计, {0}", tsTotalSeconds);

ConsoleWriteLine("时间差,以分钟计, {0}", tsTotalMinutes)。

获取当前日期是有严格的格式规定的,小写的m代表的是分钟,大写的M才是月份,这里不能乱用。

下面具体介绍一下日期的格式:

日期格式:yyyyMMdd HH:mm:ss

yyyy:代表年份

MM: 代表月份

dd: 代表

HH: 代表小时(24小时制)

mm: 代表分钟

ss: 代表秒

这里可以使用分隔符来分隔年月日时分秒。包含的值有:-、/、:等非关键字符,例如DateTimeNowToString("yyyy-MM-dd HH:mm:ss:ffff");

扩展资料:

在C#中DateTime是一个包含日期和时间的类型,该类型通过ToString()转换为字符串时,可根据传入给Tostring()的参数转换为多种类型的字符串格式。

1、分类

DateTime调用ToString()传入的参数可分为制式和自定义两种:

(1) 制式:系统自带的,转入特定的单个字符就可转换为系统已设定好的格式。

(2) 自定义:自由组合日期代码(y、M、d、h、m、s、f)来展示丰富的日期格式。

2、制式类型

说明:转入特定的单个字符就可转换为系统已设定好的格式。

1、输出当前时间

DateTime now = DateTimeNow;

ConsoleWriteLine(now);

2、输出年月日 - 时分秒(为0)

DateTime now = DateTimeNow;

ConsoleWriteLine(nowDateToString());

3、输出年月日 - 时分格式时间

DateTime now = DateTimeNow;

ConsoleWriteLine(nowToString("yyyy-MM-dd hh:mm"));

4、输出年月日格式的时间

DateTime now = DateTimeNow;

ConsoleWriteLine(nowToString("yyyy-MM-dd"));

5、输出时分秒格式的时间

DateTime now = DateTimeNow;

ConsoleWriteLine(nowToString("HH:mm:ss"));

6、输出当前时间增加一天

DateTime afterNow = nowAddDays(1);

ConsoleWriteLine(afterNow);

7、输出当前时间减去一天

DateTime beforeNow = nowAddDays(-1);

ConsoleWriteLine(beforeNow);

//取得某月的最后一天

//方法一:使用算出该月多少天,年+月+加上多少天即得,举例取今天这个月的最后一天

private void GetLastDateForMonth(DateTime DtStart, out DateTime DtEnd)

{

int Dtyear, DtMonth;

DtStart = DateTimeNow;

Dtyear = DtStartYear;

DtMonth = DtStartMonth;

int MonthCount = DateTimeDaysInMonth(Dtyear, DtMonth);//计算该月有多少天

DtEnd = ConvertToDateTime(DtyearToString() + "-" + DtMonthToString() + "-" + MonthCount);

}

//方法二:取出下月的第一天减去一天便是这个月的最后一天

private void GetLastDateForMonth(DateTime DtStart, out DateTime DtEnd)

{

int Dtyear, DtMonth;

DtStart = DateTimeNowAddMonths(1);//月份加1

Dtyear = DtStartYear;

DtMonth = DtStartMonth;

DtEnd = ConvertToDateTime(DtyearToString() + "-" + DtMonthToString() + "-" + "1")AddDays(-1);//取出下月的第一天减去一天

}

二、时间差的计算

法一、使用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值表示的秒数。

简单示例:

DateTime d1 =new DateTime(2004,1,1,15,36,05);

DateTime d2 =new DateTime(2004,3,1,20,16,35);

TimeSpan d3 = d2Subtract(d1);

LbTimeText = "相差:"

+d3DaysToString()+"天"

+d3HoursToString()+"小时"

+d3MinutesToString()+"分钟"

+d3SecondsToString()+"秒";

法二、使用Sql中的DATEDIFF函数

使用方法:DATEDIFF ( datepart , startdate , enddate )

它能帮你取出你想要的各种形式的时间差,如相隔多少天,多少小时,多少分钟等,具体格式如下:

日期部分缩写

year yy, yyyy

quarter qq, q

Month mm, m

dayofyear dy, y

Day dd, d

Week wk, ww

Hour hh

minute mi, n

second ss, s

millisecond ms

如:datediff(mi,DtOpTime,DtEnd) 便能取出他们之间时间差的分钟总数,已经帮你换算好了,对于要求规定单位,时、分、秒特别有用

三 计算两个日期之间相差的工作日天数(转载:>

“天数”是指两个日期之间相隔的天数。所以必须计算两个日期值的差后,再得到相隔天数。见下面的例子:

// 起始日期: 2016年1月1日 00:00:00

datetime t0 = new datetime(2016, 10, 1);

// 结束日期:当前日期,即2016年10月22日

datetime t = datetimenow;

// 计算日期差值,获取相隔的天数

int days = (t - t0)days; // days = 21

以上就是关于C#怎么获取两个DateTime值的时差全部的内容,包括:C#怎么获取两个DateTime值的时差、C# Datetime 得到系统时间后,增加或者减少几秒得到一个时间值、c# 获取当前时间var str = DateTime.Now.Date.ToString("yyyyMMdd");等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9555236.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存