Подсчитав количество дней, обновите его до записи ASP.NET C # - PullRequest
0 голосов
/ 16 мая 2011

Итак, у меня есть сетка с «dateborrowed» и «datereturned».Я хочу, чтобы программа учитывала количество дней между «dateborrowed» и «datereturned», например, «dateborrowed» = 1 апреля 2011 г. - «datereturned» = 30 апреля 2011 г. = 29 дней между ними.Также я хочу, чтобы значение автоматически вставлялось в запись 'daysibetween'.Так как я могу это сделать?

Помощь будет высоко ценится.Заранее спасибо !!

Ответы [ 2 ]

4 голосов
/ 16 мая 2011

Есть несколько способов сделать это

Очень аккуратный способ

(a - b).TotalDays

взято из Рассчитать разницу между двумя датами (количество дней)?

DateTime d1=DateTime.MinValue;
DateTime d2=DateTime.MaxValue;
TimeSpan span=d2-d1;
Console.WriteLine( "There're {0} days between {1} and {2}" , span.TotalDays, d1.ToString(), d2.ToString() );

ИЛИ

private int GetDaysBetweenDates(DateTime firstDate, DateTime secondDate)
{
   return secondDate.Subtract(firstDate).Days;
}

Все они были взяты из этого потока в MSDN.

После расчета добавление его в базуUPDATE запрос.

1 голос
/ 16 мая 2011

Я знаю, что это не тот ответ, который вы, возможно, ищете, но в соответствии с хорошим дизайном базы данных, вы не должны хранить рассчитанные DaysInBetween в вашей таблице. Вы можете рассчитать это значение в любое время, когда оно вам понадобится, используя различные методы (в том числе те, которые указаны в ответе Раххиру).

Если вы используете SQL Server, вы можете использовать функцию DateDiff , чтобы вычислить количество дней в вашем операторе Select: DateDiff(day, dateBorrowed, dateReturned) as DaysInBetween.

В этом отношении вы можете использовать вычисляемый столбец в своей таблице, чтобы он выглядел как фактический столбец, даже если он будет вычислен на лету, когда вы его получите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...