C#计算两个日期之间相差的天数
C#计算两个日期之间相差的天数
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;
}
这是我所学到的一些知识,在此分享给大家,希望可以帮助到你们。
以上就是我的分享,新手上道,请多多指教。如果有更好的方法或不懂得地方欢迎在评论区教导和提问喔!
C#计算两个日期之间相差的天数相关推荐
- 计算两个日期之间相差的天数(带带负数) 支持格式YYYY-mm-dd和YYYY-mm-dd HH:mm:ss...
/*** 计算两个日期之间相差的天数(带带负数) 支持格式YYYY-mm-dd比较* @param higDate 减数* @param lowDate 被减数* @returns 差值天数 格式不正 ...
- js 计算两个日期之间相差的天数,并适配 Ios
计算两个日期之间相差的天数 需求 :通过两个日期,计算当前时间与过去某个时间之间相差的天数 注意 :时间日期的格式 "yyyy-MM-dd HH:mm:ss"格式化日期 , 备注 ...
- java计算两个日期之间相差的天数的四种方法
计算两个日期之间相差的天数的四种方法 第一种:时间戳的方式,计算两个日期的时间戳的差,再除当天的毫秒数即可得到相差的天数. public static void main(String[] args) ...
- java 计算日期相差天数_JAVA计算两个日期之间相差的天数
这是本人第一次写博客,主要计算两个日期之间相差的天数 import java.text.ParseException; import java.util.Date; import org.apache ...
- java 日期 相差的天数_JAVA计算两个日期之间相差的天数
在Java开发物流或是其他功能的时候会用到两个日期相差多天的数据,所以整理了一下备用. 调用方式: long date1 = getDateTime("20121201");//可 ...
- JavaScript计算两个日期之间相差的天数
写一个JavaScript的函数用于计算两个日期字符串之间相差的天数,首先求出两个日期之间相差的毫秒数,然后除以一天的毫秒数 //获得两个日期之间相差的天数function getDays(date1 ...
- c语言计算两个日期之间相差的天数
如何使用c语言进行两个日期之间相差的天数呢?接下来请看代码. 本人是一名大一新生,若代码有误还请告知,感激不尽. #include<stdio.h> int main(){ int ...
- 如何计算两个日期之间相差的天数?
见MSDN: 代码:确定两个日期之间的间隔 (Visual C#) 本示例计算两个日期之间相差的天数并为该差额构造一个 TimeSpan 值. 示例 DateTime oldDat ...
- 日期间隔计算器-计算两个日期之间相差多少天-计算某天之后的多少天是几号计算器
我们在编程过程中不可避免会遇到计算两个日期之间相差多少天-计算某天之后的多少天是几号 如下图 具体的地址点击下方链接 即可快快速直达 https://www.codelovers.cn/tools/d ...
最新文章
- 在RHEL 5中Yum应用大全
- Linux编译mybatis,使用mybatis assembly插件打成tar包,在linux系统中运行服务-Go语言中文社区...
- python 每次读一行-转载 python每次读入文件一行的问题(血的教训啊)
- 一些解密必备知识(2)- 基础篇03|解密系列
- UA OPTI501 电磁波 Lorentz Oscillator Model 3 相速度与群速度
- Web Storage中的sessionStorage和localStorage
- worth,worthy,worthwhile的区别(一)
- 计算机网络(十四)-CSMA/CD协议
- Bootstrap3 表单静态控件
- sbt创建web项目
- Python str内部功能介绍
- 使用new和delete
- SPSS 卡方检验(图文+数据集)【SPSS 019期】
- usb启动计算机boss设置方法,技嘉主板bios设置usb启动(图文教程)
- thinkPad电脑无人操作时休眠设置
- RocketMQ-Topic创建
- 计算机双硬盘怎么启动第二块硬盘,电脑装两个硬盘怎么设置主从盘_双硬盘设置主盘的方法...
- daytime协议的服务器和客户端程序,用Socket套接字实现DAYTIME协议的服务器和客户端程序-20210414073352.docx-原创力文档...
- 模型选择的几种方法:AIC,BIC,HQ准则
- 第60讲:MySQL视图的综合使用案例