2015-02-04 1 views
0

Я кодирую интернет-приложение MVC 5, и я хочу написать функцию, которая будет работать как с оператором SQL, так и со списком.Вычислить функцию DiffDays DateTime order - имеет ли большее время DateTime первое или второе

Вот мой код:

public static class TestableDbFunctions 
{ 
    [System.Data.Entity.DbFunction("Edm", "DiffDays")] 
    public static double? DiffDays(DateTime? dateValue1, DateTime? dateValue2) 
    { 
     if (!dateValue1.HasValue || !dateValue2.HasValue) 
      return null; 

     return (double)((dateValue2.Value - dateValue1.Value).TotalDays); 
    } 
} 

Как вы можете видеть, код вычисляет разницу в днях между двумя DateTimes.

Мой вопрос: должен ли код быть (dateValue2.Value - dateValue1.Value).TotalDays или (dateValue1.Value - dateValue2.Value).TotalDays?

Заранее спасибо.

+0

Почему бы не вернуть абсолютное значение? –

+0

Вы хотите сказать, что всегда хотите вернуть положительное значение? –

ответ

0

Поскольку вы пытаетесь выполнить SQL, ближайший аналог DateDiff. Первый аргумент - start date и второй i end date. Код должен быть

return (endDate - startDate).TotalDays; 
+0

Не могли бы вы рассказать мне, как это сделать самому? – user3736648

+0

@ user3736648 читайте ссылку на 'DateDiff', которую я поставил. –