Добрый день. В процессе написания сценария стало необходимо вычислить дату, которая на несколько дней раньше заданной. Написал простенький сценарий: public void testDate(Context context) { DateTime testDay = new DateTime(); double substractDays = -context.IntValue; context.Message = ""; testDay = context.EndDate; context.Message += "substractDays = " + substractDays + "\n\n"; context.EndDate.AddDays(substractDays); context.Message += "context.EndDate - " + context.IntValue + " day(s) = " + context.EndDate + "\n"; context.EndDate.AddDays(-substractDays * 2); context.Message += "context.EndDate + " + context.IntValue + " day(s) = " + context.EndDate + "\n"; } Значения IntValue и EndDate задаю в задаче, после которой отрабатывается сценарий, а потом выводится результат. Но результат выводится вот такой: Дата окончания 22.02.2018 Целое значение 10 Сообщение: substractDays = -10 context.EndDate - 10 day(s) = 22.02.2018 0:00:00 context.EndDate + 10 day(s) = 22.02.2018 0:00:00 Т.е. ничего не высчитывается. В чем может быть проблема?
проблема в этом AddDays это функция возвращающая новый DateTime с запрошенными характеристиками, а вы предполагаете что изменится исходный DateTime. Т.е. нужно что-то вроде context.EndDate=context.EndDate.AddDays(substractDays);