C 時間處理 DateTime和TimeSpan

2021-05-25 12:10:47 字數 3040 閱讀 6527

//取得某月的最後一天

//方法一:使用算出該月多少天,年+月+加上多少天即得,舉例取今天這個月的最後一天

private void getlastdateformonth(datetime dtstart, out datetime dtend)

//方法二:取出下月的第一天減去一天便是這個月的最後一天

private void getlastdateformonth(datetime dtstart, out datetime dtend)

二、時間差的計算

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

如:datediff(mi,dtoptime,dtend) 便能取出他們之間時間差的分鐘總數,已經幫你換算好了,對於要求規定單位,時、分、秒特別有用

三 計算兩個日期之間相差的工作日天數

///

/// 計算兩個日期之間相差的工作日天數

///

/// 開始日期

/// 結束日期

/// int

public int calculateworkingdays(datetime dtstart, datetime dtend)

{int count=0;

for(datetime dttemp=dtstart;dttemp傳回值:字元

引數說明:

轉義字元:輸入型別為字元,具有不同格式化字元的字元如內容說明中所例。輸入字元內的格式化字元被格式化後輸出,其他不屬於格式化的字元則根據對應位置輸出。'被比較日期':輸入型別為字元,需要被比較的日期格式的字元內容。'目標比較日期':輸入型別為字元,用來比較的目標日期格式的字元內容。

內容說明:根據輸入日期計算兩個指定日期之間的時間間隔。

轉義字元說明:t:獲 取兩個日期之間差異刻度表示的差異值。(正數或負數)d:獲取兩個日期之間差異的整天數。(正數或負數)h:獲取兩個日期之間差異的整小時數。(正數或負 數)u:獲取兩個日期之間差異的整毫秒數。(正數或負數)m:獲取兩個日期之間差異的整分鐘數。(正數或負數)s:獲取兩個日期之間差異的整秒數。(正數 或負數)d:獲取兩個日期之間以整天數和天的小數部分表示的差異值。(正數或負數)h:獲取兩個日期之間以整小時數和小時的小數部分表示的差異值。(正數 或負數)u:獲取兩個日期之間整毫秒數和毫秒的小數部分表示的差異值。(正數或負數)m:獲取兩個日期之間以整分鐘數和分鐘的小數部分表示的差異值。(正 數或負數)s:獲取兩個日期之間以整秒數和秒的小數部分表示的差異值。(正數或負數)

declare @date1 datetime,@date2 datetime

set @date1='2009-12-01 14:38:00'

set @date2='2009-12-04 14:38:00'

select 時間差 = 

cast(datediff(second , @date1, @date2) / (24*60*60) as varchar) + '天' + 

cast((datediff(second , @date1, @date2) % (24*60*60)) / (60*60) as varchar) + '時' + 

cast(((datediff(second , @date1, @date2) % (24*60*60)) % (60*60)) / 60 as varchar) + '分' +

cast(((datediff(second , @date1, @date2) % (24*60*60)) % (60*60)) % 60 as varchar) + '秒'

/*時間差                

----------------------

3天0時0分0秒

(所影響的行數為 1 行)

C 時間處理 DateTime和TimeSpan

c 時間處理 datetime和timespan 具體使用方法如下 取得某月的最後一天 方法一 使用算出該月多少天,年 月 加上多少天即得,舉例取今天這個月的最後一天 private void getlastdateformonth datetime dtstart,out datetime dte...

datetime處理日期和時間

1.datetime.now 獲取當前datetime datetime.utcnow from datetime import datetime 獲取當前本地時間 a datetime.now print 當前日期 a 獲取當前世界時間 b datetime.utcnow print b 2.da...

datetime處理日期和時間

將以下datetime型別轉換成字串 用datetime型別的變數輸出以下字串 from datetime import datetime spt datetime.strptime 2017 9 30 y m d spt datetime.datetime 2017,9,30,0,0 spt2 d...