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 編輯過