Снипет по вычитанию двух дат вдруг перестает работать

Antares

Client
Регистрация
19.01.2018
Сообщения
131
Благодарностей
9
Баллы
18
Всем привет

Есть снипет, который вычитает одну дату из другой и выдает ответ в минутах:

string date1 = project.Variables["DateNumber1"].Value;
string date2 = project.Variables["DateNumber2"].Value;
DateTime Date1Posttime = DateTime.ParseExact(date1, "h:mm d MMM. yyyy г.", new System.Globalization.CultureInfo("ru-RU"));
DateTime Date2Posttime = DateTime.ParseExact(date2, "h:mm d MMM. yyyy г.", new System.Globalization.CultureInfo("ru-RU"));
return (Date1Posttime - Date2Posttime).TotalMinutes;


В переменных даты в таком формате:

DateNumber1 = 12:17 23 сен. 2018 г.
DateNumber2 = 23:35 25 сен. 2018 г.

Суть проблемы:
Данный снипет отрабатывает в цикле, т.е. он перебирает ряд дат, и оставляет самую "свежую".
Проблема в том, что при старте работы шаблона он работает, но на определенном этапе цикла (например после 4 итерации), начинает выдавать ошибку "
Выполнение действия CSharp OwnCode Строка не распознана как действительное значение DateTime.
" и после этого уже не работает ни с одной датой. Даты проверял, формат даты нормальный (т.е. тот который и нужен).

Буду благодарен за помощь
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 994
Благодарностей
787
Баллы
113
посчитай на какой итерации это сбоит - и проверь эту дату, может пробел лишний или другой символ. тут только это может быть
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Проанализируйте содержимое переменных в момент возникновения ошибки.
 

Antares

Client
Регистрация
19.01.2018
Сообщения
131
Благодарностей
9
Баллы
18
посчитай на какой итерации это сбоит - и проверь эту дату, может пробел лишний или другой символ. тут только это может быть
Проанализируйте содержимое переменных в момент возникновения ошибки.
Естественно я это проверял перед тем как на форум вылезти )
С датами вроде все в порядке, пробовал вручную менять и т.п. - не помогает.

Сейчас опять пробовал, все же он через какое то время опять начинает нормально считать.. Вообще не понимаю в чем причина.

Еще хотел узнать, этот код почему то не правльно считает, т.е. он не возвращает отрицательное значение, а выдает непонятные минуты:

Пример:
От даты 10:45 25 сен. 2018 г. отнимаю 12:01 25 сен. 2018 г., должно быть отрицательное значение, а код выдает мне 644 минуты -__-
 

Antares

Client
Регистрация
19.01.2018
Сообщения
131
Благодарностей
9
Баллы
18
В общем поменял в формате даты "h" на "H", результат стал получаться отрицательный и вроде без сбоев.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
В общем поменял в формате даты "h" на "H", результат стал получаться отрицательный и вроде без сбоев.
Ну h вроде 12 часовой формат. Так что выше 13+ наверно ошибки отбивало
 
  • Спасибо
Реакции: arhip1985

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)