...

Не работает DateTime.AddDays()

Тема в разделе "Разработчикам", создана пользователем SlimerSan, 15 фев 2018.

Метки:
  1. SlimerSan

    SlimerSan New Member

    Добрый день.
    В процессе написания сценария стало необходимо вычислить дату, которая на несколько дней раньше заданной.
    Написал простенький сценарий:
    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


    Т.е. ничего не высчитывается.
    В чем может быть проблема?
     
  2. akarimov

    akarimov Member

    проблема в этом
    AddDays это функция возвращающая новый DateTime с запрошенными характеристиками, а вы предполагаете что изменится исходный DateTime.
    Т.е. нужно что-то вроде context.EndDate=context.EndDate.AddDays(substractDays);
     
  3. SlimerSan

    SlimerSan New Member

    Большое спасибо, не докумекал.
    Все заработало.
    Еще раз спасибо.
     

Поделиться: