LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

[点晴永久免费OA]C#计算两个日期之间相差的天数

admin
2023年4月4日 10:57 本文热度 648

private int DateDiff(DateTime dateStart, DateTime dateEnd)

        {

            DateTime start = Convert.ToDateTime(dateStart.ToShortDateString());

            DateTime end = Convert.ToDateTime(dateEnd.ToShortDateString());

            TimeSpan sp = end.Subtract(start);

            return sp.Days;

        }

DateTime dt1 = DateTime.Now.AddDays(1); DateTime dt2 = DateTime.Now; int i = dt1.CompareTo(dt2); 这个就能看出来差一天了

如果我想算"2017-2-13 23:59:59"到"2017-2-14 0:00:01"这两个时间相差的天数,那应该是1天,但是用楼上的代码得到的只有2秒的时间差。

想要算相隔天数,可以这样:

string str1 = "2017-2-13 23:59:59";

string str2 = "2017-2-14 0:00:01";

DateTime d1 = Convert.ToDateTime(str1);

DateTime d2 = Convert.ToDateTime(str2);

DateTime d3 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", d1.Year, d1.Month, d1.Day));

DateTime d4 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", d2.Year, d2.Month, d2.Day));

int days = (d4 - d3).Days;


时间差的计算

方法一:

使用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 = d2.Subtract(d1);

LbTime.Text = "相差:"

+d3.Days.ToString()+"天"

+d3.Hours.ToString()+"小时"

+d3.Minutes.ToString()+"分钟"

+d3.Seconds.ToString()+"秒";


方法二、使用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

DateTime是内置的事件类型,TimeSpan是内置的事件间隔类型

两个类型为DateTime的变量作-运算得到类型为TimeSpan的数据

DateTime.Now是一个只读属性,返回当前的时间,类型为DateTime

TimeSpan :根据输入日期计算两个指定日期之间的时间间隔。

语法:String TimeSpan('转义字符','被比较日期','目标比较日期')

传回值:字符

参数说明:

转义字符:输入类型为字符,具有不同格式化字符的字符如内容说明中所例。输入字符内的格式化字符被格式化后输出,其他不属于格式化的字符则根据对应位置输出。'被比较日期':输入类型为字符,需要被比较的日期格式的字符内容。'目标比较日期':输入类型为字符,用来比较的目标日期格式的字符内容。

内容说明:根据输入日期计算两个指定日期之间的时间间隔。

转义字符说明:T:获 取两个日期之间差异刻度表示的差异值。(正数或负数)d:获取两个日期之间差异的整天数。(正数或负数)h:获取两个日期之间差异的整小时数。(正数或负 数)u:获取两个日期之间差异的整毫秒数。(正数或负数)m:获取两个日期之间差异的整分钟数。(正数或负数)s:获取两个日期之间差异的整秒数。(正数 或负数)D:获取两个日期之间以整天数和天的小数部分表示的差异值。(正数或负数)H:获取两个日期之间以整小时数和小时的小数部分表示的差异值。(正数 或负数)U:获取两个日期之间整毫秒数和毫秒的小数部分表示的差异值。(正数或负数)M:获取两个日期之间以整分钟数和分钟的小数部分表示的差异值。(正 数或负数)S:获取两个日期之间以整秒数和秒的小数部分表示的差异值。(正数或负数)

private static int DateDiff(DateTime dateStart, DateTime dateEnd)

        {

            DateTime start = Convert.ToDateTime(dateStart.ToShortDateString());

            DateTime end = Convert.ToDateTime(dateStart.ToShortDateString());

            TimeSpan sp = end.Subtract(start);

            return sp.Days;

        }


该文章在 2023/4/4 10:57:25 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved