當(dāng)前位置:首頁 > IT技術(shù) > Windows編程 > 正文

C#中DateTime的時(shí)間加減法操作總結(jié) 【轉(zhuǎn)載】
2021-10-07 11:20:15

在C#語言中,DateTime是用來表示時(shí)間的類,在C#的DateTime時(shí)間類中,提供了好像時(shí)間對(duì)象加減法操作,可用于某一個(gè)時(shí)間對(duì)象加減 多少年、加減多少個(gè)月、加減多少天、加減多少小時(shí)、加減多少分鐘、加減多少秒等操作,此文將總結(jié)C#的DateTime類中的時(shí)間加減操作運(yùn)算。

(1)加減多少年操作:AddYears方法,具體參考C#使用AddYears方法獲取當(dāng)前時(shí)間20年后的時(shí)刻。

?

在C#語言中,DateTime.Now指的是程序當(dāng)前時(shí)間,針對(duì)時(shí)間對(duì)象的操作,如果要計(jì)算某一個(gè)時(shí)間點(diǎn)N年后對(duì)應(yīng)的時(shí)間時(shí)刻,則可以使用DateTime類的AddYears方法來實(shí)現(xiàn)。此文將介紹當(dāng)前時(shí)間點(diǎn)20年后對(duì)應(yīng)的時(shí)間點(diǎn)時(shí)刻的實(shí)現(xiàn)方式。

AddYears方法的簽名為:DateTime AddYears(int value);,參數(shù)value為需要為加減的年數(shù)信息,如果value參數(shù)為負(fù)數(shù)時(shí),則表示往前多少年對(duì)應(yīng)的時(shí)間點(diǎn),如果value值為正數(shù)則表示往后多少年對(duì)應(yīng)的時(shí)間點(diǎn)。

例如獲取當(dāng)前時(shí)間的加上20年對(duì)應(yīng)的時(shí)間時(shí)刻(程序運(yùn)行時(shí)間為:2019/8/10 9:15:00),編寫代碼如下:

?DateTime result = DateTime.Now.AddYears(20);

運(yùn)行結(jié)果為:result 結(jié)果為2039年8月10日 9:15:00。符合實(shí)際情況。

如果要獲取當(dāng)前時(shí)間的往前20年對(duì)應(yīng)的時(shí)間信息,則可以使用下列代碼。

? DateTime result = DateTime.Now.AddYears(-20);

**************************************************************************************************************************************************

(2)加減多少月操作:AddMonths方法,具體參考C#使用AddMonths方法獲取當(dāng)前時(shí)間幾個(gè)月后的時(shí)間點(diǎn)

?

在C#語言中,DateTime.Now指的是程序當(dāng)前時(shí)間,在DateTime類中有一個(gè) AddMonths方法,此方法可用于時(shí)間的月數(shù)加減,例如某一個(gè)時(shí)間點(diǎn)加減幾個(gè)月后對(duì)應(yīng)的時(shí)間點(diǎn)。此文將介紹當(dāng)前時(shí)間加減幾個(gè)月對(duì)應(yīng)的時(shí)間點(diǎn),例如當(dāng)前 時(shí)間減去一個(gè)月對(duì)應(yīng)的上個(gè)月的時(shí)間點(diǎn)信息。

AddMonths方法的簽名為:DateTime AddMonths(int months);,參數(shù)value為需要為加減的月數(shù),為整型Int類型參數(shù)。當(dāng)參數(shù)為負(fù)數(shù)時(shí)候,則表示以計(jì)算時(shí)間為基準(zhǔn)點(diǎn),向前計(jì)算,可以理解為減去多少個(gè)月后得到的時(shí)間點(diǎn)。

例如獲取當(dāng)前時(shí)間的加上1個(gè)月后的時(shí)間點(diǎn)(程序運(yùn)行時(shí)間為:2019/8/10 9:15:00),編寫代碼如下:

?DateTime result = DateTime.Now.AddMonths(1);//獲取當(dāng)前時(shí)間往后1個(gè)月的時(shí)間點(diǎn)

運(yùn)行結(jié)果為:result 結(jié)果為2019年9月10日 9:15:00。符合實(shí)際情況。

如果要獲取當(dāng)前時(shí)間的往前1個(gè)月對(duì)應(yīng)的時(shí)間點(diǎn)則可以按下列代碼實(shí)現(xiàn):

? DateTime result = DateTime.Now.AddMonths(-1);

**************************************************************************************************************************************************

(3)加減多少天操作:AddDays方法,具體參考C#使用AddDays方法獲取當(dāng)前日期前一天。

?

在C#語言中,DateTime.Now指的是程序當(dāng)前時(shí)間,在DateTime類中有一個(gè)方法 AddDays方法,此方法主要是將指定天數(shù)加到對(duì)應(yīng)的DateTime對(duì)象算,一般用來計(jì)算某個(gè)時(shí)間的前幾天或者后幾天。AddDays方法簽名為 DateTime AddDays(double value),參數(shù)value代表需要加減的天數(shù),可以為雙精度double類型小數(shù)。此文將以此來介紹計(jì)算當(dāng)前時(shí)間前一天。

在AddDays方法中,傳入的參數(shù)可為正數(shù)也可為負(fù)數(shù),如果是負(fù)數(shù),則是返回計(jì)算時(shí)間之前的某個(gè)日期時(shí)間,可以理解為時(shí)間減法。

例如獲取當(dāng)前時(shí)間的前一天的這個(gè)時(shí)間點(diǎn)(程序運(yùn)行時(shí)間為:2019/8/10 9:15:00),編寫代碼如下:

? ? ?DateTime result = DateTime.Now.AddDays(-1);//獲取當(dāng)前時(shí)間的前一天

運(yùn)行結(jié)果為:result 結(jié)果為2019年8月9日 9:15:00。符合實(shí)際情況。

如果要獲取當(dāng)前時(shí)間的前半天時(shí)間,則傳入?yún)?shù)0.5即可,代碼如下:

? ? ?DateTime result = DateTime.Now.AddDays(-0.5);//獲取當(dāng)前時(shí)間的前半天

**************************************************************************************************************************************************

(4)加減多少小時(shí)操作:AddHours方法,具體參考C#使用AddHours方法獲取當(dāng)前時(shí)間加減幾個(gè)小時(shí)的時(shí)間。

?

在C#語言中,DateTime.Now指的是程序當(dāng)前時(shí)間,在DateTime類中有一個(gè) AddHours方法,此方法可用于計(jì)算時(shí)間的加減,參數(shù)為加減的小時(shí)數(shù)。返回結(jié)果為某一個(gè)時(shí)間對(duì)象加減多少個(gè)小時(shí)后得到的新的時(shí)間對(duì)象。此文將于當(dāng)當(dāng)前 加減20個(gè)小時(shí)為例講解AddHours方法。

AddHours方法的簽名為:?DateTime AddHours(double value),參數(shù)value為需要加減的小時(shí)數(shù),為雙精度double類型,此參數(shù)可以為負(fù)數(shù),當(dāng)參數(shù)為負(fù)數(shù)的時(shí)候,則代表指定時(shí)間減去多少個(gè)小時(shí)后得到的時(shí)間對(duì)象。

例如獲取當(dāng)前時(shí)間的加上20個(gè)小時(shí)后的時(shí)刻(程序運(yùn)行時(shí)間為:2019/8/10 9:15:00),編寫代碼如下:

? DateTime result = DateTime.Now.AddHours(20);//獲取當(dāng)前時(shí)間20個(gè)小時(shí)后的時(shí)刻點(diǎn)

運(yùn)行結(jié)果為:result 結(jié)果為2019年8月11日 5:15:00。符合實(shí)際情況。

如果要獲取當(dāng)前時(shí)間的前20個(gè)小時(shí)對(duì)應(yīng)的時(shí)刻,則傳入?yún)?shù)-20即可,代碼如下:

? DateTime result = DateTime.Now.AddHours(-20);

**************************************************************************************************************************************************

(5)加減多少分鐘操作:AddMinutes方法,具體參考C#使用AddMinutes方法獲取當(dāng)前時(shí)間加減幾分鐘對(duì)應(yīng)的時(shí)刻。

?

在C#語言中,DateTime.Now指的是程序當(dāng)前時(shí)間,在DateTime類中有一個(gè) AddMinutes方法,此方法用于指定時(shí)間對(duì)象往后多少分鐘或者往前多少分鐘對(duì)應(yīng)的時(shí)刻,即指定時(shí)間對(duì)象加減多少分鐘對(duì)應(yīng)的時(shí)間點(diǎn)對(duì)象。此文將介紹當(dāng) 前時(shí)間點(diǎn)加減幾分鐘后對(duì)應(yīng)的時(shí)間對(duì)象的代碼實(shí)現(xiàn)。

AddMinutes方法的簽名為:DateTime AddMinutes(double value);,參數(shù)value為需要為加減的時(shí)間分鐘數(shù),可以為正數(shù)也可以為負(fù)數(shù),當(dāng)為正數(shù)的情況下,則為往后計(jì)算。若為負(fù)數(shù),則表示以計(jì)算時(shí)間點(diǎn)為基準(zhǔn)點(diǎn)向前計(jì)算。

例如獲取當(dāng)前時(shí)間的加上2分鐘后的時(shí)間點(diǎn)(程序運(yùn)行時(shí)間為:2019/8/10 9:15:00),編寫代碼如下:

?DateTime result = DateTime.Now.AddMinutes(2);

運(yùn)行結(jié)果為:result 結(jié)果為2019年8月10日 9:17:00。符合實(shí)際情況。

如果要獲取當(dāng)前時(shí)間的往前130分鐘對(duì)應(yīng)的時(shí)間點(diǎn),則可以使用下列代碼。

? DateTime result = DateTime.Now.AddMonths(-130);

**************************************************************************************************************************************************

(6)加減多少秒操作:AddSeconds方法,具體參考C#使用AddSeconds方法獲取當(dāng)前時(shí)間加減多少秒數(shù)后對(duì)應(yīng)的時(shí)間。

?

在C#語言中,DateTime.Now指的是程序當(dāng)前時(shí)間,在DateTime類中有一個(gè) AddSeconds方法,此方法用于計(jì)算指定時(shí)間對(duì)象往后多少秒對(duì)應(yīng)的時(shí)間點(diǎn)或者往前多少秒對(duì)應(yīng)的時(shí)間點(diǎn),即指定時(shí)間對(duì)象加減多少秒數(shù)對(duì)應(yīng)的時(shí)間點(diǎn)對(duì) 象。此文將以當(dāng)前時(shí)間加減多少秒后對(duì)應(yīng)的時(shí)間點(diǎn)為例講解。

AddSeconds方法的簽名為:DateTime AddSeconds(double value);,參數(shù)value為需要為加減的秒數(shù)信息,當(dāng)value取值為負(fù)數(shù)時(shí)候,則是往前計(jì)算多少秒前的時(shí)間點(diǎn),可以理解為時(shí)間的減法。

例如獲取當(dāng)前時(shí)間的加上60秒后對(duì)應(yīng)的時(shí)間(程序運(yùn)行時(shí)間為:2019/8/10 9:15:00),編寫代碼如下:

?DateTime result = DateTime.Now.AddSeconds(60);

運(yùn)行結(jié)果為:result 結(jié)果為2019年8月10日 9:16:00。符合實(shí)際情況。

如果要獲取當(dāng)前時(shí)間的往前60秒對(duì)應(yīng)的時(shí)間點(diǎn),則可以使用下列代碼。

? DateTime result = DateTime.Now.AddSeconds(-60);

**************************************************************************************************************************************************

?

?

在C#語言中,DateTime.Now指的是程序當(dāng)前時(shí)間,在DateTime類中有一個(gè)方法 AddDays方法,此方法主要是將指定天數(shù)加到對(duì)應(yīng)的DateTime對(duì)象算,一般用來計(jì)算某個(gè)時(shí)間的前幾天或者后幾天。AddDays方法簽名為 DateTime AddDays(double value),參數(shù)value代表需要加減的天數(shù),可以為雙精度double類型小數(shù)。此文將以此來介紹計(jì)算當(dāng)前時(shí)間前一天。

在AddDays方法中,傳入的參數(shù)可為正數(shù)也可為負(fù)數(shù),如果是負(fù)數(shù),則是返回計(jì)算時(shí)間之前的某個(gè)日期時(shí)間,可以理解為時(shí)間減法。

例如獲取當(dāng)前時(shí)間的前一天的這個(gè)時(shí)間點(diǎn)(程序運(yùn)行時(shí)間為:2019/8/10 9:15:00),編寫代碼如下:

? ? ?DateTime result = DateTime.Now.AddDays(-1);//獲取當(dāng)前時(shí)間的前一天

運(yùn)行結(jié)果為:result 結(jié)果為2019年8月9日 9:15:00。符合實(shí)際情況。

如果要獲取當(dāng)前時(shí)間的前半天時(shí)間,則傳入?yún)?shù)0.5即可,代碼如下:

? ? ?DateTime result = DateTime.Now.AddDays(-0.5);//獲取當(dāng)前時(shí)間的前半天

**************************************************************************************************************************************************

?

?

在C#語言中,DateTime.Now指的是程序當(dāng)前時(shí)間,通過DateTime.Now變量下的屬性 Year可獲取到當(dāng)前年,Month可獲取到當(dāng)前月,可以使用DateTime.DaysInMonth方法來獲取當(dāng)前月或者指定年份月的天數(shù)信 息,DaysInMonth方法簽名為int DaysInMonth(int year, int month),參數(shù)year代表年,參數(shù)month代表月。

例如獲取當(dāng)前時(shí)間的當(dāng)前月天數(shù)(程序運(yùn)行時(shí)間為:2019/8/10 9:15:00),編寫代碼如下:

? ? ? DateTime nowTime = DateTime.Now;
? ? ? ? ? ? int year = nowTime.Year;//獲取當(dāng)前年
? ? ? ? ? ? int month = nowTime.Month;//獲取當(dāng)前月?
? ? ? ? ? ? int monthDays = DateTime.DaysInMonth(year, month);

運(yùn)行結(jié)果為:monthDays=31。符合實(shí)際情況。

**************************************************************************************************************************************************

?

在C#中,DateTime是用來表示時(shí)間的類,從DateTime.Now中可以獲取當(dāng)前所在年份。此文 將介紹如果給定一個(gè)具體年份,如何通過C#語言來獲取到該年有多少天。最直接的例子為獲取當(dāng)前年份的天數(shù)。在這里主要使用到了 DateTime.IsLeapYear方法,DateTime.IsLeapYear方法是用來判斷閏年的內(nèi)置方法。

下面實(shí)例是獲取當(dāng)前年(即2019年)的總天數(shù)的代碼:

? ?int year = DateTime.Now.Year;//DateTime.Now表示當(dāng)前時(shí)間,從DateTime.Now時(shí)間中獲取年份屬性Year

? ? ? ? ? ? int totalDay = 365;//默認(rèn)為非閏年
? ? ? ? ? ? if (DateTime.IsLeapYear(year))
? ? ? ? ? ? {
? ? ? ? ? ? ? ? totalDay = 366;//DateTime.IsLeapYear判斷結(jié)果為閏年,有366天
? ? ? ? ? ? }

從運(yùn)行結(jié)果來看: totalDay = 365。

**************************************************************************************************************************************************

?

在C#中,DateTime是用來表示時(shí)間的類,DateTime.Now可以獲取當(dāng)前時(shí)間。如果給定一個(gè) 日期,在C#中如何獲取該日期是星期幾呢,例如獲取當(dāng)前日期時(shí)間,并計(jì)算出當(dāng)前日期是星期幾,此功能可以通過DateTime的ToString方法來實(shí) 現(xiàn),指定格式化參數(shù)為dddd即可實(shí)現(xiàn)。

下面實(shí)例是獲取當(dāng)前日期是星期幾的實(shí)例代碼:

string xingQiJi = DateTime.Now.ToString("dddd");

從運(yùn)行結(jié)果來看:xingQiJi=“星期六”。正好符合當(dāng)前博文發(fā)表時(shí)間的實(shí)際結(jié)果。

?

**************************************************************************************************************************************************

?

本文摘自 :https://www.cnblogs.com/

開通會(huì)員,享受整站包年服務(wù)立即開通 >