我想將5分鐘添加到指定時間,這裏是我的代碼。將分鐘添加到當前指定的時間
string startTime = "1:00 AM";
string endTime = "0:05 AM";
TimeSpan duration = DateTime.Parse(endTime).Add(DateTime.Parse(startTime));
我不斷收到錯誤,我怎麼能有5分鐘到凌晨1點成爲1:05 AM?
我想將5分鐘添加到指定時間,這裏是我的代碼。將分鐘添加到當前指定的時間
string startTime = "1:00 AM";
string endTime = "0:05 AM";
TimeSpan duration = DateTime.Parse(endTime).Add(DateTime.Parse(startTime));
我不斷收到錯誤,我怎麼能有5分鐘到凌晨1點成爲1:05 AM?
你傳入整個DateTime
對象,而你需要解析endTime
字符串後僅傳遞Minute
屬性,然後使用AddMinutes
方法startTime
解析DateTime
對象本上:
DateTime updateTime = DateTime.Parse(startTime).AddMinutes(DateTime.Parse(endTime).Minute);
它將返回DateTime
對象增加5分鐘到原始DateTime
對象,即1:00 AM並且reuslt將是1:05 AM
看到工作DEMO Fiddle here
不,不 - 這是一個壞主意。此代碼可以工作,直到持續時間更改爲1-59之間的整數分鐘數。如果持續時間變爲30秒或一整小時?然後這段代碼會在開始時間加上0分鐘。 – Kevin
Add方法有一個重載獲取TimeSpan。如下使用它:
DateTime dt = DateTime.UtcNow; // this should be your value actually
DateTime newTime = dt.Add(TimeSpan.FromMinutes(5);
AddMinutes方法是更好的選擇(由@Ehsan答覆) – Artak
您不能添加的時候,你只能添加一個跨度。但是,您可以通過TimeOfDay
屬性來獲取日期時間的跨度:
string startTime = "1:00 AM";
string endTime = "0:05 AM";
DateTime duration = DateTime.Parse(startTime).Add(DateTime.Parse(endTime).TimeOfDay);
然而,直接使用時間跨度是更值得推薦的(你要刪除AM
,因爲它是一個跨度,而不是一個DateTime):
string startTime = "1:00 AM";
string endTime = "0:05";
DateTime duration = DateTime.Parse(startTime).Add(TimeSpan.Parse(endTime));
如果你知道你將永遠不會添加的東西比別的分鐘,我會做這樣的事情:
string startTime = "1:00 AM";
int minutes = 5;
DateTime duration = DateTime.Parse(startTime).AddMinutes(minutes);
你可以瞭解更多關於DateTime here。
+1。偏移,從概念上思考程序。你*不*有開始時間和結束時間。你有一個開始時間和*持續時間*。你真正想要的是'startTime'作爲一個字符串,'durationInMinutes'作爲一個整數。 – Kevin
將錯誤消息添加到問題 –