Всем привет.
Очередной вопрос по коду от меня. Сейчас перешел с проджект мейкера на отладку шаблона в зенопостер. И столкнулся с тем, что в проджект мейкере все снипеты работают, а в ЗП зачастую выдают ошибки. Пробую разные варианты исправить код, но я не программист и языка не знаю.. пробую чисто по логике что то менять. Но на текущий момент столкнулся с проблемкой, которую исправить не получается.
Была задача:
Взять 2 даты, которые записаны в двух переменных и получить разницу в днях. Осложнено все тем, что даты в разных форматах. Причем формат второй даты динамический (может быть разным), поэтому есть еще одна переменная, в которой указан текущий формат для этой даты (dd/MM например и т.д.).
Задача была успешно решена снипетом, который любезно мне подсказали на форуме. И он отлично отрабатывал в ПМ, пока я не стал запускать шаблон в ЗП.
----
Итак имеем переменные:
Data1 - Это первая дата. Она всегда в таком формате: "09.03.18"
Data2 - Это вторая дата. И она может быть в разных форматах. (Например 03/15/18, или такая 15/03, или такая 15/03/2018 и т.д.)
FormatData2 - Переменная, в которой указан текущий формат для Data2 ( MM/dd/yy или dd/MM и т.д.)
Вот этот сниппет (который работал в ПМ):
string Data1 = project.Variables["Data1"].Value;
string Data2 = project.Variables["Data2"].Value;
DateTime Data1norm = DateTime.ParseExact(Data1, "dd.MM.yy", null);
DateTime Data2norm = DateTime.ParseExact(Data2, "{-Variable.FormatData2-}", null);
return (Data2norm - Data1norm).TotalDays; // Получение разницы в днях
Ошибка, которую выдает ЗП:
"Подпроект 123. Выполнение действия CSharp OwnCode Строка не распознана как действительное значение DateTime."
Пробовал поменять код как то вот так:
var format = project.Variables["FormatData2"].Value;
string Data1 = project.Variables["Data1"].Value;
string Data2 = project.Variables["Data2"].Value;
DateTime Data1norm = DateTime.ParseExact(Data1, "dd.MM.yy", null);
DateTime Data2norm = DateTime.ParseExact(Data2, "format", null);
return (Data2norm - Data1norm).TotalDays; // Получение разницы в днях
Не помогло, та же ошибка. Но теперь и проджект мейкер код не обрабатывает, и выдает такую же ошибку.
Думал, может быть это связано с тем, что в дате2 иногда идет формат день/месяц, без года. Пробовал менять на формат с годом. Все равно ошибка.
Буду очень благодарен за помощь.
Очередной вопрос по коду от меня. Сейчас перешел с проджект мейкера на отладку шаблона в зенопостер. И столкнулся с тем, что в проджект мейкере все снипеты работают, а в ЗП зачастую выдают ошибки. Пробую разные варианты исправить код, но я не программист и языка не знаю.. пробую чисто по логике что то менять. Но на текущий момент столкнулся с проблемкой, которую исправить не получается.
Была задача:
Взять 2 даты, которые записаны в двух переменных и получить разницу в днях. Осложнено все тем, что даты в разных форматах. Причем формат второй даты динамический (может быть разным), поэтому есть еще одна переменная, в которой указан текущий формат для этой даты (dd/MM например и т.д.).
Задача была успешно решена снипетом, который любезно мне подсказали на форуме. И он отлично отрабатывал в ПМ, пока я не стал запускать шаблон в ЗП.
----
Итак имеем переменные:
Data1 - Это первая дата. Она всегда в таком формате: "09.03.18"
Data2 - Это вторая дата. И она может быть в разных форматах. (Например 03/15/18, или такая 15/03, или такая 15/03/2018 и т.д.)
FormatData2 - Переменная, в которой указан текущий формат для Data2 ( MM/dd/yy или dd/MM и т.д.)
Вот этот сниппет (который работал в ПМ):
string Data1 = project.Variables["Data1"].Value;
string Data2 = project.Variables["Data2"].Value;
DateTime Data1norm = DateTime.ParseExact(Data1, "dd.MM.yy", null);
DateTime Data2norm = DateTime.ParseExact(Data2, "{-Variable.FormatData2-}", null);
return (Data2norm - Data1norm).TotalDays; // Получение разницы в днях
Ошибка, которую выдает ЗП:
"Подпроект 123. Выполнение действия CSharp OwnCode Строка не распознана как действительное значение DateTime."
Пробовал поменять код как то вот так:
var format = project.Variables["FormatData2"].Value;
string Data1 = project.Variables["Data1"].Value;
string Data2 = project.Variables["Data2"].Value;
DateTime Data1norm = DateTime.ParseExact(Data1, "dd.MM.yy", null);
DateTime Data2norm = DateTime.ParseExact(Data2, "format", null);
return (Data2norm - Data1norm).TotalDays; // Получение разницы в днях
Не помогло, та же ошибка. Но теперь и проджект мейкер код не обрабатывает, и выдает такую же ошибку.
Думал, может быть это связано с тем, что в дате2 иногда идет формат день/месяц, без года. Пробовал менять на формат с годом. Все равно ошибка.
Буду очень благодарен за помощь.