C#: код не работает с переменными проекта

workoles

Client
Регистрация
02.05.2015
Сообщения
276
Благодарностей
81
Баллы
28
Мой голова сломан!) Есть код для перевода заданного времени в UNIX формат:
Код:
int unixTimestamp = (int)(DateTime.UtcNow.Subtract(new DateTime(1970, 01, 01))).TotalSeconds;
return unixTimestamp;
Код прекрасно работает, но стоит только в него добавить переменную с датой, работа заканчивается. Делаю следующим образом:
Код:
int unixTimestamp = (int)(DateTime.UtcNow.Subtract(new DateTime(project.Variables["year"].Value, 01, 01))).TotalSeconds;
return unixTimestamp;
Версия ПМ: 5.9.5.1 Может есть у кого какие предположения?
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 107
Баллы
113
Код:
int unixTimestamp = (int)(DateTime.UtcNow.Subtract(new DateTime(int.Parse(project.Variables["year"].Value), 01, 01))).TotalSeconds;
return unixTimestamp;
 
  • Спасибо
Реакции: workoles и rostonix

workoles

Client
Регистрация
02.05.2015
Сообщения
276
Благодарностей
81
Баллы
28
Код:
int unixTimestamp = (int)(DateTime.UtcNow.Subtract(new DateTime(int.Parse(project.Variables["year"].Value), 01, 01))).TotalSeconds;
return unixTimestamp;
Огромное спасибо! Заработало. А можете пояснить мне на будущее что реализует данная конструкция - int.Parse() ? Почему она нужна в этом случае, а в других нет.
Вот, например, код, который считает количество папок:
Код:
string[] dir = Directory.GetDirectories(@project.Variables["folder_path"].Value); // Путь к директории
return dir.Length;
Он работает в таком формате.
 
Последнее редактирование:

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Огромное спасибо! Заработало. А можете пояснить мне на будущее что реализует данная конструкция - int.Parse() ? Почему она нужна в этом случае, а в других нет.
Вот, например, код, который считает количество папок:
Код:
string[] dir = Directory.GetDirectories(@project.Variables["folder_path"].Value); // Путь к директории
return dir.Length;
Он работает в таком формате.
Почитайте книги по C#, Это базовые вещи.
В одном месте подходит text как тип данных, в другом нужен int
Переменные проекта это всегда text
 
Последнее редактирование:
  • Спасибо
Реакции: workoles

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 107
Баллы
113
Огромное спасибо! Заработало. А можете пояснить мне на будущее что реализует данная конструкция - int.Parse() ? А точнее почему она нужна в этом случае, а в других нет.
Метод Int32.Parse
Для данного случая: формат DateTime должен быть числовым (DateTime(int, int, int)), а значения переменных проекта всегда находятся в строковом виде, поэтому нужно преобразовывать строку в численный эквивалент.
 
  • Спасибо
Реакции: workoles

workoles

Client
Регистрация
02.05.2015
Сообщения
276
Благодарностей
81
Баллы
28
Почитайте книги по C#, Это базовые вещи.
Уже в планах)
Переменные проекта это всегда text
значения переменных проекта всегда находятся в строковом виде
Вот этого не знал, хотя уже начал догадываться. Словом, спасибо, ребята!
 

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