C # DateTime оператор + = - PullRequest
       30

C # DateTime оператор + =

3 голосов
/ 19 июня 2010

У меня есть две переменные типа DateTime, и я хочу их суммировать, как я могу это сделать? Я получаю ошибку компиляции, которая говорит, что DateTime не имеет оператора + =

Ответы [ 3 ]

7 голосов
/ 19 июня 2010

Нельзя добавить два значения DateTime вместе. Это не будет иметь никакого значения. DateTime представляет один момент времени, тогда как TimeSpan представляет продолжительность. Добавление момента времени к продолжительности приводит к другому моменту времени. Вы можете добавить TimeSpan значения только к DateTime значениям - и поддерживает поддержку += в этом случае:

dateTime += timeSpan;
3 голосов
/ 19 июня 2010

Просто чтобы ответить на комментарий в ответе Мехрдада - да, похоже, что эти оба должны рассматриваться как TimeSpan с вместо DateTime значений ... и да, вы можете добавить интервалы временивместе тоже.

Если вы используете .NET 4, вы можете использовать строку нестандартного формата для анализа первой части строк, например "00: 00: 01.2187500".

Sampleкод:

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);
    }
}
0 голосов
/ 15 мая 2014

Вы можете использовать метод DateTime.ToOADate :

DateTime D1 = DateTime.Today;
DateTime D2 = DateTime.Today.AddMonths(2);

double days = D1.ToOADate() + D2.ToOADate();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...