Авто конвертаци переменной в дату

semi

Client
Регистрация
20.06.2023
Сообщения
100
Благодарностей
19
Баллы
18
В переменной лежат данные. 180.04
Записываю денные в ячейку эксели.
В логах читаю "Установка значения ячейки таблцы Результат 01.04.0180. 0:00:00" Ну и в ячейке тоже самое...

В экселке отключил авто замену на дату. В зенке есть такая функция?
 

semi

Client
Регистрация
20.06.2023
Сообщения
100
Благодарностей
19
Баллы
18
Пока что заколхозил добавив знак перед переменной. Чтоб за писывалось как число
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
21 601
Благодарностей
9 618
Баллы
113
В переменной лежат данные. 180.04
Записываю денные в ячейку эксели.
В логах читаю "Установка значения ячейки таблцы Результат 01.04.0180. 0:00:00" Ну и в ячейке тоже самое...

В экселке отключил авто замену на дату. В зенке есть такая функция?
Пока не смог воспроизвести ситуацию.
Предположу, что вы используете заранее созданную таблицу с измененным назначением ячеек, т.е. ячейка куда вы записываете данные настроена как 'дата и время'.
 
  • Спасибо
Реакции: semi

semi

Client
Регистрация
20.06.2023
Сообщения
100
Благодарностей
19
Баллы
18
Пока не смог воспроизвести ситуацию.
Предположу, что вы используете заранее созданную таблицу с измененным назначением ячеек, т.е. ячейка куда вы записываете данные настроена как 'дата и время'.

Выяснил что это в эксельке формат ячейки такой.

Парсил добавляя знак ' и пото записывал в ячейку.

В эксельке заменил точку на запятую, что бы проссумировать результат
 
  • Спасибо
Реакции: Sergodjan

maks_pays

Client
Регистрация
01.01.2017
Сообщения
186
Благодарностей
52
Баллы
28
Пока не смог воспроизвести ситуацию.
Предположу, что вы используете заранее созданную таблицу с измененным назначением ячеек, т.е. ячейка куда вы записываете данные настроена как 'дата и время'.
подскажите пожалуйста как сменить в переменной 31 Oct 22:00 на 31 окт 22:00 именно на кирилицу и с все одного регистра
 

KokaSEO

Client
Регистрация
17.01.2015
Сообщения
443
Благодарностей
178
Баллы
43
подскажите пожалуйста как сменить в переменной 31 Oct 22:00 на 31 окт 22:00 именно на кирилицу и с все одного регистра
Я через свичи делел. Да, это не универсально, но месяцев всего 12 так что не проблема
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
21 601
Благодарностей
9 618
Баллы
113
подскажите пожалуйста как сменить в переменной 31 Oct 22:00 на 31 окт 22:00 именно на кирилицу и с все одного регистра
Немного наговнокодил, но работает: :-)

C#:
string old_date = project.Variables["old_date"].Value; //31 Oct 22:00
System.Globalization.CultureInfo ru = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU");
System.Globalization.CultureInfo en = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
DateTime new_date = DateTime.ParseExact(old_date, "dd MMM hh:mm", en); 
return new_date.ToString(@"dd MMM hh:mm", ru); //31 окт 22:00
 
  • Спасибо
Реакции: djaga

maks_pays

Client
Регистрация
01.01.2017
Сообщения
186
Благодарностей
52
Баллы
28
Немного наговнокодил, но работает: :-)

C#:
string old_date = project.Variables["old_date"].Value; //31 Oct 22:00
System.Globalization.CultureInfo ru = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU");
System.Globalization.CultureInfo en = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
DateTime new_date = DateTime.ParseExact(old_date, "dd MMM hh:mm", en);
return new_date.ToString(@"dd MMM hh:mm", ru); //31 окт 22:00
чтото не работает
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
21 601
Благодарностей
9 618
Баллы
113

maks_pays

Client
Регистрация
01.01.2017
Сообщения
186
Благодарностей
52
Баллы
28
Какую то ошибку в Лог выкидывает?
На входе, в переменной old_date, в каком формате дата?
31 Oct 22:00
Выполнение действия CSharp OwnCode. Строка не распознана как действительное значение DateTime.
 

deskuznetsov

Client
Регистрация
29.08.2019
Сообщения
547
Благодарностей
383
Баллы
63
31 Oct 22:00
Выполнение действия CSharp OwnCode. Строка не распознана как действительное значение DateTime.
C#:
string old_date = project.Variables["old_date"].Value; //31 Oct 22:00
System.Globalization.CultureInfo ru = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU");
System.Globalization.CultureInfo en = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
DateTime new_date = DateTime.ParseExact(old_date, "dd MMM HH:mm", en);
return new_date.ToString("dd MMM HH:mm", ru); //31 окт. 22:00
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
21 601
Благодарностей
9 618
Баллы
113
31 Oct 22:00
Выполнение действия CSharp OwnCode. Строка не распознана как действительное значение DateTime.
Может быть в переменной old_date есть лишние пробельные символы?
Перепроверил, при конечном пробеле например выбивает такую ошибку.

Попробуйте в начало кода поместить такую строку:
project.Variables["old_date"].Value = Macros.TextProcessing.Trim(project.Variables["old_date"].Value, "Full");
 

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