Подскажите..
Есть время в переменной в формате 2021-01-15 01:25:40
Как к нему прибавить 11 часов и записать обратно в переменную?
return (Convert.ToDateTime(project.Variables["date"].Value).AddHours(11)).ToString("yyyy-MM-dd HH:mm:ss");
Если правильно понял:Помогите пожалуйста с кодом. Мне нужно от текущей даты отнять число (например 7), записать в другую переменную. Часы, минуты, сек не нужны для моей задачи, только дата
string str = "20.10.2021 10:00";
DateTime dt = DateTime.Parse(str);
dt = dt.AddDays(-7);
return dt;
DateTime dt = DateTime.Now;
dt = dt.AddDays(-7);
return dt;
DateTime dt = DateTime.Now.Date;
dt = dt.AddDays(-7);
return dt;
Респект и уважение.Если правильно понял:
Или если с текущей датой:C#:string str = "20.10.2021 10:00"; DateTime dt = DateTime.Parse(str); dt = dt.AddDays(-7); return dt;
Или если время не нужно:C#:DateTime dt = DateTime.Now; dt = dt.AddDays(-7); return dt;
C#:DateTime dt = DateTime.Now.Date; dt = dt.AddDays(-7); return dt;
string input6 = "06/23/2020"; //23.06.2020 по en-US
System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");//задаем языковые (региональные) стандарты
DateTime dt = DateTime.ParseExact(input6, "d", culture);//Выполнение кода C# Результат: 23.06.2020 0:00:00
return dt;
string date = project.Variables["dob"].Value;
System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
DateTime formatDate;
DateTime.TryParse(date, out formatDate);
return formatDate.ToString("dd/MM/yyyy");
dt.ToString("dd/MM/yyyy");Подскажите плиз, есть переменная в котором дата
например
19/02/2001
8/2/2001
и т.п
Нужно конвертировать так, чтобы "8/2/2001" стал "08/02/2001"
То есть добавить 0
Этот код добавляет еще и время, а как сделать без времени? что бы только дата была?C#:string input6 = "06/23/2020"; //23.06.2020 по en-US System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");//задаем языковые (региональные) стандарты DateTime dt = DateTime.ParseExact(input6, "d", culture);//Выполнение кода C# Результат: 23.06.2020 0:00:00 return dt;
пробовал вместо "d" указывать разные форматы и все равно на выходе выдает с указанием времени
Спасибо, помогло. Но появилась другая проблемаdt.ToString("dd/MM/yyyy");
//REPL
string input = $"{DateTime.Today:MM dd yyyy}";
var culture = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU");
DateTime dt = DateTime.ParseExact(input, "MM dd yyyy", culture);
Print(dt);
$"Вторник {DateTime.Today:MM yyyy}"
, но тоже никак.@semafor, @Phoenix78, "Все остальные". Помогите, пожалуйста.)
Задача:Работает://REPL string input = $"{DateTime.Today:MM dd yyyy}"; var culture = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU"); DateTime dt = DateTime.ParseExact(input, "MM dd yyyy", culture); Print(dt);
Из данных у меня только день недели "Вторник".
Как при таких вводных можно получить дату целиком? Учитывая что день недели всегда ближайший.
Я пробовал менять культуру. Писал в маске "dddd". Но ничего не помогает.
Так же я пытался указать:$"Вторник {DateTime.Today:MM yyyy}"
, но тоже никак.
string input = "Понедельник";
DateTime date = Convert.ToDateTime("7.12.2021");
string[] week = new string[] {"Понедельник",
"Вторник", "Среда", "Четверг", "Пятница",
"Суббота", "Воскресенье" };
return date.AddDays(Array.IndexOf(week, input) - (int) date.DayOfWeek + 1).ToString("d");
//РАБОТАЕТ ТОЛЬКО В .NET 4.6 и выше. unix time для даты 19.02.2020 20:34:00 UTC
long dt = new DateTimeOffset(2020,2,19,20,34,0,TimeSpan.Zero).ToUnixTimeSeconds();//Выполнение кода C# Результат: dt = 1582144440; 1 способ - dts = 1582144440
Такой вариант не устроит?Спасибо за прекрасный сниппет:
Подскажите, а как грамотно положить из переменной проекта дату и время сюда без распаршивания 6 чисел, если строка будет такого вида: 2020,2,19,20,34,0?C#://РАБОТАЕТ ТОЛЬКО В .NET 4.6 и выше. unix time для даты 19.02.2020 20:34:00 UTC long dt = new DateTimeOffset(2020,2,19,20,34,0,TimeSpan.Zero).ToUnixTimeSeconds();//Выполнение кода C# Результат: dt = 1582144440; 1 способ - dts = 1582144440
//string data1 = project.Variables["Имя Переменной"].Value;
string data1 = "26.01.2022 12:34";
return new DateTimeOffset(DateTime.Parse(data1),TimeSpan.Zero).ToUnixTimeSeconds();//Выполнение кода C# Результат: dt = 1582144440; 1 способ - dts = 1582144440
//string data1 = project.Variables["Имя Переменной"].Value;
string data1 = "2020,2,19,20,34,0";
// Сплит данных
string[] output = data1.Split(new string[] { "," }, StringSplitOptions.None); // Разделяем Split
// Разбив данных
string Year = output[0];
string Month = output[1];
string Day = output[2];
string Hour = output[3];
string Minute = output[4];
string Second = output[5];
return new DateTimeOffset(DateTime.Parse(Year + "." + Month + "." + Day + " " + Hour + ":" + Minute + ":" + Second),TimeSpan.Zero).ToUnixTimeSeconds();//Выполнение кода C# Результат: dt = 1582144440; 1 способ - dts =
РаботаетТакой вариант не устроит?
C#://string data1 = project.Variables["Имя Переменной"].Value; string data1 = "26.01.2022 12:34"; return new DateTimeOffset(DateTime.Parse(data1),TimeSpan.Zero).ToUnixTimeSeconds();//Выполнение кода C# Результат: dt = 1582144440; 1 способ - dts = 1582144440
Лучше перевести все в UNIX TIME и сравнивать. Не нужно будет столько всего городить.Друзья, помогите тому, кто только в начале пути... Сориентируйте, что куда смотреть или подскажите решение: у меня на нужной странице появляются некие даты (формат такой: 04/02/2022) - их три штуки появляется. У меня есть заранее условие: диапазон дат (к примеру с 01.02.2022 по 15.02.2022). Мне нужно сравнить появившиеся даты на странице с нужным диапазоном - если хоть одна дата попадает в этот диапазон, то записать ее в переменную и продолжить выполнение.
Сейчас делаю так: создаю кубик с проверкой текста на странице (в приложенном файле скрин). Когда маленький диапазон дат, то еще терпимо. Подскажите, как можно решить эту задачу? Благодарю
@Tvister правильно сказал:Друзья, помогите тому, кто только в начале пути... Сориентируйте, что куда смотреть или подскажите решение: у меня на нужной странице появляются некие даты (формат такой: 04/02/2022) - их три штуки появляется. У меня есть заранее условие: диапазон дат (к примеру с 01.02.2022 по 15.02.2022). Мне нужно сравнить появившиеся даты на странице с нужным диапазоном - если хоть одна дата попадает в этот диапазон, то записать ее в переменную и продолжить выполнение.
Сейчас делаю так: создаю кубик с проверкой текста на странице (в приложенном файле скрин). Когда маленький диапазон дат, то еще терпимо. Подскажите, как можно решить эту задачу? Благодарю
//для переменной
//string min = project.Variables["min"].Value;
string min = "01/02/2022";
//парсим нижнюю дату диапазона, преобразуем ее в DiteTimeOffset и получаем unixtime
DateTimeOffset dtofmin = DateTime.Parse(min);;
long udtmin = dtofmin.ToUnixTimeSeconds();
//верх. дата диапазона
string max = "15/02/2022";
DateTimeOffset dtofmax = DateTime.Parse(max);;
long udtmax = dtofmax.ToUnixTimeSeconds();
//значение со страницы
string parse = "01/02/2022";
DateTimeOffset dtofparse = DateTime.Parse(parse);;
long udtparse = dtofparse.ToUnixTimeSeconds();
//если значение со страницы больше или равно нижней границе
//и значение со страницы меньше или равно верх границе
if(udtmin <= udtparse && udtmax >= udtparse)
{
//делаем что-то, например выводим флаг в переменную проекта
project.Variables["somevar"].Value = "true";
//или выволим в лог
project.SendInfoToLog("Спаршенная дата находится в диапазоне");
}
//если за пределами, выходим по красной
else throw new Exception("Спаршенная дата находится за пределами диапазона");
//делаем что-то, например выводим флаг в переменную проекта
project.Variables["somevar"].Value = "true";
//для переменной
string min = project.Variables["min_Date"].Value;
//парсим нижнюю дату диапазона, преобразуем ее в DiteTimeOffset и получаем unixtime
DateTimeOffset dtofmin = DateTime.Parse(min);;
long udtmin = dtofmin.ToUnixTimeSeconds();
//верх. дата диапазона
string max = project.Variables["max_Date"].Value;
DateTimeOffset dtofmax = DateTime.Parse(max);;
long udtmax = dtofmax.ToUnixTimeSeconds();
//значение со страницы
string parse = project.Variables["pars_Data_min"].Value;
DateTimeOffset dtofparse = DateTime.Parse(parse);;
long udtparse = dtofparse.ToUnixTimeSeconds();
//если значение со страницы больше или равно нижней границе
//и значение со страницы меньше или равно верх границе
if(udtmin <= udtparse && udtmax >= udtparse)
{
//делаем что-то, например выводим флаг в переменную проекта
project.Variables["Date"].Value = "pars_Data_min";
//или выволим в лог
project.SendInfoToLog("Спаршенная дата находится в диапазоне");
}
//если за пределами, выходим по красной
else throw new Exception("Спаршенная дата находится за пределами диапазона");
Почитайте блок про сравнение дат в начале темы и про то как использовать дату из переменной (приводить к нужному типу данных)Надо сравнить сохранённую дату с текущим временем, если разница больше 24х часов, то идет выполнение дальше, если меньше, то берется следующая дата. Например сравнимая дата записана в переменную x. заранее спасибо за ответ
А как получить завтрашний день?
return DateTime.Now.ToString("dd.MM.yyyy"); - это сегодняшний а надо сделать +1 день
return DateTime.Now.AddDays(1).ToString("dd.MM.yyyy");
А как можно в место 1 поставить переменную {-Variable.rez-}return DateTime.Now.AddDays(1).ToString("dd.MM.yyyy");