Снипет отнять от даты минуты

Antares

Client
Регистрация
19.01.2018
Сообщения
131
Благодарностей
9
Баллы
18
Никак мне не "победить" работу с датами..

Вопросы:
1)
Переменные:
now1 = 11/07/2018 21:24:48 (месяц день год, стандартный дейттайм зенопостера)
wait1 = 176 (минуты)

Снипет:
DateTime now = (Convert.ToDateTime(project.Variables["now1"].Value));
DateTime wait = now.AddMinutes(Convert.ToDouble(project.Variables["wait1"].Value));
return wait;

По итогу получаю - 12.07.2018 0:20:48
Т.е. вроде как считает, но принимает, что первое число в дате это дни.. а не самом деле месяцы. Понимаю, что нужно как то переназначить, как на знаю.. прошу помощи


2) Сразу решил тут написать, может кто-нибудь сходу подскажет снипет для сравнения даты текущей с датой которую получим в вопросе номер 1. И если дата текущая больше или равно, то "работаем"
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 926
Благодарностей
6 389
Баллы
113
я бы посоветовал покурить тему про unixtime
с ней работать гораздо легче и понятнее

а теперь подробно и понятно, простым языком напиши, что конкретно надо
 

Antares

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

а теперь подробно и понятно, простым языком напиши, что конкретно надо
По юникс тайм посмотрю, спасибо. Но сейчас весь проект уже на обычных датах завязан, не хочу переделывать..

По п.1: Смысл в том, что есть переменная с датой и я хочу к этой дате прибавить 176 (переменная) минут. Формат даты и используемый снипет (который вроде считает, но видимо не понимает формат даты) расписал в первом посте. Какие еще подробности нужны? )
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113

Geograph

Client
Регистрация
16.02.2014
Сообщения
209
Благодарностей
113
Баллы
43
Код:
var now1 = "11/07/2018 21:24:48"; // месяц день год, стандартный дейттайм зенопостера
var wait1 = "176"; // минуты

DateTime now = (Convert.ToDateTime(now1, CultureInfo.GetCultureInfo("en-US")));
DateTime wait = now.AddMinutes(Convert.ToDouble(wait1)); // Добавить минуты  
DateTime wait2 = now.AddMinutes(-Convert.ToDouble(wait1)); // Отнять минуты
  
return wait;
//return wait2;
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 926
Благодарностей
6 389
Баллы
113
берем дату до секунды сниппетом
Код:
return (long)(DateTime.UtcNow - new DateTime (1970, 1, 1)).TotalSeconds;
потом делаем манипуляции с временем что нам нужно, а именно 176 минут.
176*60=10560 секунд

после просто складываем переменную А и Б

с юникс таймом очень просто работать для НЕ программиста
 
  • Спасибо
Реакции: Antares

Antares

Client
Регистрация
19.01.2018
Сообщения
131
Благодарностей
9
Баллы
18
Код:
var now1 = "11/07/2018 21:24:48"; // месяц день год, стандартный дейттайм зенопостера
var wait1 = "176"; // минуты

DateTime now = (Convert.ToDateTime(now1, CultureInfo.GetCultureInfo("en-US")));
DateTime wait = now.AddMinutes(Convert.ToDouble(wait1)); // Добавить минуты 
DateTime wait2 = now.AddMinutes(-Convert.ToDouble(wait1)); // Отнять минуты
 
return wait;
//return wait2;
Спасибо, сделал так:

var now1 = project.Variables["var1"].Value; // месяц день год, стандартный дейттайм зенопостера
var wait1 = project.Variables["var2"].Value; // минуты

DateTime now = (Convert.ToDateTime(now1, CultureInfo.GetCultureInfo("en-US")));
DateTime wait = now.AddMinutes(Convert.ToDouble(wait1)); // Добавить минуты

return wait;
//return wait2;

Выдает такую ошибку - http://prntscr.com/lfmamc

Пробовал просто Ваш код запустить (т.е. без переменных), такая же ошибка.
 

Geograph

Client
Регистрация
16.02.2014
Сообщения
209
Благодарностей
113
Баллы
43
Нужно подключить пространство имен System.Globalization
Код:
using System.Globalization;
 
  • Спасибо
Реакции: Antares

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