我想减去分钟数并获得差异。下面是我的代码
double diff = currBlock.EndTime.Subtract(currBlock.StartTime).TotalMinutes;
在给定代码中(currBlock.StartTime = 23:30:00)和(currBlock.EndTime = 00:20:00) 这里的开始时间是今天的时间即(09/26/2016 23:30:00),晚上的时间将被视为晚上11:30,结束时间是明天的时间即(09/27/2016 00:20:00) ,早上的时间将被视为12:20 Am。在我的代码中,我得到的值为-1390,这是不正确的。所以请帮我解决这个问题。
答案 0 :(得分:2)
请正确解释我,我该如何使用它?它只是一个不同班次的时间段,所以没有日期包括在内
包含日期。你告诉我们EndTime
就像09/27/2016 00:20:00,而StartTime
就像09/26/2016 23:30:00。问题在于,知识在你脑海中而不在你的代码中。如果你将这些值减去TimeSpan
s,那么你真的会说:30分钟减去23小时30分钟。答案当然是-23小时。要获得真正的差异,您必须包含日期,这意味着对DateTime
和DateTimeOffset
使用StartTime
或EndTime
类型,你可以编码整个日期和时间。然后,当你进行减法时,它将返回正确的值。
答案 1 :(得分:-1)
以下代码适用于我。感谢朋友们的支持和帮助。
string strCurrDate = (DateTime.Now.Date + currBlock.EndTime).ToString();
DateTime dtYourDate = DateTime.Parse((DateTime.Now.AddDays(-1).Date + currBlock.StartTime).ToString());
string strYourDate = dtYourDate.ToShortDateString() + " " + dtYourDate.ToLongTimeString();
string strTotalMinsElapsed = TotalMinutesElapsed(dtYourDate).ToString();
private long TotalMinutesElapsed(DateTime dtYourDate)
{
long lTotalMinutesElapsed = 0;
//Find Current Date and Time
DateTime dtCurrent = DateTime.Now;
//Find Time Difference details between current date and your given date
TimeSpan tsDiff = dtCurrent.Subtract(dtYourDate);
//Add Total Minutes for Days difference
lTotalMinutesElapsed = lTotalMinutesElapsed + tsDiff.Days * (24 * 60);
//Add Total Minutes for Hour difference
lTotalMinutesElapsed = lTotalMinutesElapsed + tsDiff.Hours * 60;
//Add Minutes
lTotalMinutesElapsed = lTotalMinutesElapsed + tsDiff.Minutes;
return lTotalMinutesElapsed;
}