Помогите создать сниппет, который задавал бы время

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83
Нужен сниппет, с помощью которого через переменные можно было бы задавать своё время.
В принципе, нужен конвертор, переводящий время формата
День, месяц, год, часы, минуты - в формат Юникс


День, месяц, год, часы, минуты надо задавать своими переменными в конце получить код Юникс-даты, в котором бы была заданная дата, время, минуты.
 

execut0r

Client
Регистрация
12.03.2014
Сообщения
259
Благодарностей
270
Баллы
63
Актуальный вопрос!
Нашел на форуме такой код:
Код:
int unixTime = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
return unixTime;
Все работает, но используется DateTime.UtcNow, а мне нужно туда вставить определенный день и время.
Пробовал туда прописать эту переменную, в которую вложил нужное мне время, но почему то не работает.
Сделал так:
Код:
int unixTime = (int)(project.Variables["time"].Value - new DateTime(1970, 1, 1)).TotalSeconds;
return unixTime;
Выдает ошибку, что Оператор "-" не может применяться к операндам типа "string" и ...
В общем понятно, что я тут фигню делаю и пытаюсь вычитать строки?
Помогите нубу.
Спасибо.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Код:
DateTime time = new DateTime(Convert.ToInt32(project.Variables["Year"].Value), Convert.ToInt32(project.Variables["Month"].Value), Convert.ToInt32(project.Variables["Day"].Value));
int unixTime = (int)(time - new DateTime(1970, 1, 1)).TotalSeconds;
return unixTime;
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
По аналогии после дня можно добавить еще переменных через запятую

hour
Type: System.Int32
The hours (0 through 23).

minute
Type: System.Int32
The minutes (0 through 59).

second
Type: System.Int32
The seconds (0 through 59).
 

execut0r

Client
Регистрация
12.03.2014
Сообщения
259
Благодарностей
270
Баллы
63
Код:
DateTime time = new DateTime(Convert.ToInt32(project.Variables["Year"].Value), Convert.ToInt32(project.Variables["Month"].Value), Convert.ToInt32(project.Variables["Day"].Value), Convert.ToInt32(project.Variables["Hour"].Value), Convert.ToInt32(project.Variables["Minute"].Value));
int unixTime = (int)(time - new DateTime(1970, 1, 1)).TotalSeconds;
return unixTime;
Добавил.
Но полезли ошибки - System.DateTime не содержит конструктор, который принимает 5 аргументов.
Удалил аргумент минуты.
Выдал ошибку, что Аргумент 4 преобразование типа из "int" в "System.Globalization.Calendar" невозможно.
Что я упускаю?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Там шесть аргументов вроде, а не пять
 

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83

execut0r

Client
Регистрация
12.03.2014
Сообщения
259
Благодарностей
270
Баллы
63
Спасибо, Антон!
Добавил секунды и заработало
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
  • Спасибо
Реакции: Valiksim

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83
Не совсем понятно ещё такое вот дело,- как решается задача с днями месяца?
Например, когда нужно, чтобы отсчёт шёл от сегодняшней даты 19.08.2015, до сентября 12.09.2015, потом 10.10.2015...
Задал сегодня, потом + 1 день (или любой промежуток), когда дойдёт до последнего дня месяца, как произойдёт переход на следующий при 30 и 31 дне?
 

Batareikin

Client
Регистрация
19.02.2015
Сообщения
10
Благодарностей
2
Баллы
3
//Функция конвертирования Unix Timestamp в DateTime
Код:
        static DateTime ConvertFromUnixTimestamp(double timestamp)
        {
            DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
            return origin.AddSeconds(timestamp);
        }
//Функция обратного конвертирования DateTime в Unix Timestamp
Код:
        static double ConvertToUnixTimestamp(DateTime date)
        {
            DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
            TimeSpan diff = date - origin;
            return Math.Floor(diff.TotalSeconds);
        }

Добавлю:
Учитывайте часовой пояс :-)
 

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83
Сюда как переменную. вставить?
 

Batareikin

Client
Регистрация
19.02.2015
Сообщения
10
Благодарностей
2
Баллы
3
Если понадобится - то как переменную
откровенно говоря - не понимаю практического смысла в часовых поясах
мы же от даты и времени на компе, пляшем?
 

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83
Если понадобится - то как переменную
откровенно говоря - не понимаю практического смысла в часовых поясах
мы же от даты и времени на компе, пляшем?
Если будешь на китайский сайт публиковать...
 

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