C#日期时间运算符+=
我有两个DateTime类型的变量,我想求和,我该怎么做?C#日期时间运算符+=,c#,datetime,sum,C#,Datetime,Sum,我有两个DateTime类型的变量,我想求和,我该怎么做? 我得到的编译错误是DateTime没有运算符+=您不能同时添加两个DateTime值。这没有任何意义。DateTime表示单个时间点,而TimeSpan表示持续时间。将时间点添加到持续时间会导致另一个时间点。只能将TimeSpan值添加到DateTime值中–在这种情况下,它确实支持+=: dateTime += timeSpan; 只是为了回答Mehrdad回答中的评论-是的,看起来它们都应该被视为TimeSpans,而不是Date
我得到的编译错误是DateTime没有运算符+=您不能同时添加两个
DateTime
值。这没有任何意义。DateTime
表示单个时间点,而TimeSpan
表示持续时间。将时间点添加到持续时间会导致另一个时间点。只能将TimeSpan
值添加到DateTime
值中–在这种情况下,它确实支持+=
:
dateTime += timeSpan;
只是为了回答Mehrdad回答中的评论-是的,看起来它们都应该被视为
TimeSpan
s,而不是DateTime
值。。。是的,你也可以把时间跨度加在一起
如果您使用的是.NET 4,则可以使用自定义格式字符串来解析行的第一部分,例如“00:00:01.2187500”
示例代码:
using System;
using System.Globalization;
public class Test
{
static void Main()
{
string line1 = "00:00:01.2187500 CA_3";
string line2 = "00:00:01.5468750 CWAC_1";
TimeSpan sum = ParseLine(line1) + ParseLine(line2);
Console.WriteLine(sum);
}
static TimeSpan ParseLine(string line)
{
int spaceIndex = line.IndexOf(' ');
if (spaceIndex != -1)
{
line = line.Substring(0, spaceIndex);
}
return TimeSpan.ParseExact(line, "hh':'mm':'ss'.'fffffff",
CultureInfo.InvariantCulture);
}
}
您可以使用:
我有那些行:00:00:01.2187500 CA_3 00:00:01.5468750 CWAC_1它们在一个文件中。我可以把时间读作timeSpan并添加它们吗?@ahront:
timeSpan
有一组构造函数,需要几年、几个月、几天、几小时。。。就像DateTime
。因此,是的,您应该将持续时间值读取为TimeSpan
,并将其添加到DateTime
@Merhrdad:Err,不可以。您不能在TimeSpan
构造函数中使用年或月,因为它们不是实际的度量单位(长度不同)。@Adam:嗯,您说得对。我疯了。你可以使用days
,这应该是可行的。顺便看看讨论,什么是CA_3和CWAC_1?它们是标准的还是仅仅是OP输入格式?@Mehrdad:我对它们并不熟悉。我假设它们不重要:)@ahapront:你没有使用.NET4吗?如果没有,我会有点惊讶,因为您不能指定自己的格式字符串(据我所知)
DateTime D1 = DateTime.Today;
DateTime D2 = DateTime.Today.AddMonths(2);
double days = D1.ToOADate() + D2.ToOADate();