C # DateTime проблема оценки - PullRequest
       1

C # DateTime проблема оценки

2 голосов
/ 25 августа 2011

Итак, я пытаюсь понять, что я делаю не так с этой логикой.Это кажется простым, и мои контрольные точки указывают на то, что эваляция в операторе if разрешается как True, но sum.ppStart и другие не добавляют к ним 14 дней.

Возможно, это что-то простое, но любая помощь будет признательна.

//Determine the start/end days of each week of the pay period and retrieve a list of those entries

DateTime[] weeks = timeTools.calcPP(0);
DateTime today = DateTime.Now.Date;

if (today > weeks[3])
{
  weeks[0].AddDays(14);
  weeks[3].AddDays(14);
  weeks[4].AddDays(14);
}

sum.ppStart = weeks[0];
sum.ppEnd = weeks[3];
sum.payDate = weeks[4];

Ответы [ 3 ]

8 голосов
/ 25 августа 2011

AddDays возвращает новый экземпляр DateTime, существующее значение не изменяется, это неизменяемая структура.При использовании функции запишите результат

DateTime myDate = ...
myDate = myDate.AddDays(14);
2 голосов
/ 25 августа 2011

Вам необходимо присвоить значения:

if (today > weeks[3])
{
  weeks[0] = weeks[0].AddDays(14);
  weeks[3] = weeks[3].AddDays(14);
  weeks[4] = weeks[4].AddDays(14);
}
2 голосов
/ 25 августа 2011

Это потому, что вы не используете результат метода AddDays. Подпись

 public DateTime AddDays(double days) 

или около того (см. ссылка ). Вам нужно сделать это:

weeks[0] = weeks[0].AddDays(14);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...