Как к дате добавить определенное количество дней

Troll_UA

Client
Регистрация
11.04.2016
Сообщения
121
Благодарностей
38
Баллы
28
Подскажите, как к дате которая хранится в переменной добавить определенное количество дней которое также хранится в переменной?
 

Troll_UA

Client
Регистрация
11.04.2016
Сообщения
121
Благодарностей
38
Баллы
28
Вопрос срочный, кто знает напишите.
 

LightWood

Moderator
Регистрация
04.11.2010
Сообщения
2 382
Благодарностей
917
Баллы
113
Вопрос срочный, кто знает напишите.
Вроде в C# такие методы были. В ту сторону копать. Или переводить дату в количество дней от Рождества Христова, прибавлять дни и вычислять матаном или через какой-нибудь онлайн сервис какое это число.
 

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 285
Благодарностей
624
Баллы
113

LightWood

Moderator
Регистрация
04.11.2010
Сообщения
2 382
Благодарностей
917
Баллы
113
Да не. там же например 28ое число, + 5 дней например, это уже и изменение месяца.
Тут смысла что-то в файл выносить нет.
 

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 285
Благодарностей
624
Баллы
113
Да не. там же например 28ое число, + 5 дней например, это уже и изменение месяца.
Тут смысла что-то в файл выносить нет.
А, да, действительно. Но если помучаться, можно все это обойти))
 

Severip

Client
Регистрация
17.10.2013
Сообщения
346
Благодарностей
98
Баллы
28
Вопрос срочный, кто знает напишите.
Код:
dateString = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss");
string format = "yyyy-MM-dd-HH-mm-ss";
DateTime itemdate = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture);
TimeSpan span = itemdate.Subtract(new DateTime(1970,1,1,0,0,0));
return span.TotalSeconds + 86400; // + 24 часа
 
  • Спасибо
Реакции: iicemaster и phoenixs

SHELBY

Client
Регистрация
09.09.2016
Сообщения
237
Благодарностей
291
Баллы
63
Свой код -> C# код
Код:
DateTime exp = DateTime.Now; // Создаем текущую дату
exp = exp.AddDays(7); // Добавляем к ней 7 дней
project.Variables["exp_date"].Value = exp.ToString(@"dd'/'MM'/'yyyy"); // Записываем результат в переменную ZP
Табличка для форматирования даты https://msdn.microsoft.com/ru-ru/library/8kb3ddd4(v=vs.110).aspx
 

Troll_UA

Client
Регистрация
11.04.2016
Сообщения
121
Благодарностей
38
Баллы
28
Вопрос решился.

Код:
DateTime today = (Convert.ToDateTime(project.Variables["data"].Value));
DateTime answer = today.AddDays(Convert.ToDouble(project.Variables["day"].Value));
return answer;
Мне нужен был такой вариант.
 
  • Спасибо
Реакции: irr и phoenixs

ukrainec2014

Client
Регистрация
12.05.2017
Сообщения
351
Благодарностей
52
Баллы
28
Свой код -> C# код
Код:
DateTime exp = DateTime.Now; // Создаем текущую дату
exp = exp.AddDays(7); // Добавляем к ней 7 дней
project.Variables["exp_date"].Value = exp.ToString(@"dd'/'MM'/'yyyy"); // Записываем результат в переменную ZP
Табличка для форматирования даты https://msdn.microsoft.com/ru-ru/library/8kb3ddd4(v=vs.110).aspx
а как сюда добавить переменную с проекта в которой будет количество дней, которое надо добавить?

exp = exp.AddDays(7);

в данном случае 7

---

Пробовал такие варианты.. не пошло..


DateTime exp = DateTime.Now; // Создаем текущую дату
exp = exp.AddDays("project.Variables["exp_date1"].Value"); // Добавляем к ней 1 дней
project.Variables["exp_date"].Value = exp.ToString(@"dd'.'MM'.'yyyy"); // Записываем результат в переменную ZP


DateTime exp = DateTime.Now; // Создаем текущую дату
exp = exp.AddDays(project.Variables["exp_date1"].Value); // Добавляем к ней 1 дней
project.Variables["exp_date"].Value = exp.ToString(@"dd'.'MM'.'yyyy"); // Записываем результат в переменную ZP


DateTime exp = DateTime.Now; // Создаем текущую дату
exp = exp.AddDays(+project.Variables["exp_date1"].Value); // Добавляем к ней 1 дней
project.Variables["exp_date"].Value = exp.ToString(@"dd'.'MM'.'yyyy"); // Записываем результат в переменную ZP
 

ukrainec2014

Client
Регистрация
12.05.2017
Сообщения
351
Благодарностей
52
Баллы
28
п.с.

кстати отнимать тоже получается)

C#:
DateTime exp = DateTime.Now; // Создаем текущую дату
exp = exp.AddDays(-1); // Отнимаем 1 дней
project.Variables["exp_date"].Value = exp.ToString(@"dd'.'MM'.'yyyy"); // Записываем результат в переменную ZP
 
  • Спасибо
Реакции: phoenixs

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 567
Благодарностей
9 185
Баллы
113
а как сюда добавить переменную с проекта в которой будет количество дней, которое надо добавить?

exp = exp.AddDays(7);

в данном случае 7

---

Пробовал такие варианты.. не пошло..
Попробуйте так:
C#:
DateTime exp = DateTime.Now; // Создаем текущую дату
exp = exp.AddDays(Convert.ToInt32(project.Variables["exp_date1"].Value)); // Добавляем к ней 1 дней
project.Variables["exp_date"].Value = exp.ToString(@"dd'.'MM'.'yyyy"); // Записываем результат в переменную ZP
 
  • Спасибо
Реакции: phoenixs и ukrainec2014

ukrainec2014

Client
Регистрация
12.05.2017
Сообщения
351
Благодарностей
52
Баллы
28
Попробуйте так:
C#:
DateTime exp = DateTime.Now; // Создаем текущую дату
exp = exp.AddDays(Convert.ToInt32(project.Variables["exp_date1"].Value)); // Добавляем к ней 1 дней
project.Variables["exp_date"].Value = exp.ToString(@"dd'.'MM'.'yyyy"); // Записываем результат в переменную ZP
точно!!
работает, спасибо :bp:
 
  • Спасибо
Реакции: Sergodjan

art22

Client
Регистрация
24.06.2016
Сообщения
487
Благодарностей
74
Баллы
28
Есть такого формат дата 02.11.2020 как год увеличить на 10 лет чтобы было 02.11.2030
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 567
Благодарностей
9 185
Баллы
113
Есть такого формат дата 02.11.2020 как год увеличить на 10 лет чтобы было 02.11.2030
Можно рассплитовать (Обработка текста - Split) последнее значение (год) в переменную, прибавить к нему 10 и снова собрать. Или немного видоизмененным кодом (изменение во 2-ой строке):
C#:
DateTime exp = DateTime.Now; // Создаем текущую дату
exp = exp.AddYears(Convert.ToInt32(project.Variables["exp_date1"].Value)); // Добавляем к ней заданное кол-во лет
project.Variables["exp_date"].Value = exp.ToString(@"dd'.'MM'.'yyyy"); // Записываем результат в переменную ZP
 

art22

Client
Регистрация
24.06.2016
Сообщения
487
Благодарностей
74
Баллы
28
А дату как с переменной взять?

var exp = project.Variables["data"].Value; сделал так не получился выдает ошибку
 

art22

Client
Регистрация
24.06.2016
Сообщения
487
Благодарностей
74
Баллы
28
DateTime exp = DateTime.Now; // Создаем текущую дату
А дату как с переменной взять?
C#:
var exp = project.Variables["data_1"].Value;
DateTime exp = DateTime.Now; // Создаем текущую дату
exp = exp.AddYears(Convert.ToInt32("10")); // Добавляем к ней заданное кол-во лет
project.Variables["data2"].Value = exp.ToString(@"dd'.'MM'.'yyyy"); // Записываем результат в переменную ZP
сделал так не получился выдает ошибку
 
Последнее редактирование:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 567
Благодарностей
9 185
Баллы
113
А дату как с переменной взять?
C#:
string datasource = project.Variables["datasource"].Value; //Дата на входе
DateTime data = DateTime.ParseExact(datasource, "dd.MM.yyyy", null); // Дата на входе
data = data.AddYears(Convert.ToInt32(project.Variables["exp_date1"].Value)); // Добавляем к дате на входе заданное кол-во лет
project.Variables["exp_date"].Value = data.ToString(@"dd'.'MM'.'yyyy"); // Записываем результат в переменную exp_date
 
  • Спасибо
Реакции: Hannes, kagorec и art22

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43
Вопрос решился.

Код:
DateTime today = (Convert.ToDateTime(project.Variables["data"].Value));
DateTime answer = today.AddDays(Convert.ToDouble(project.Variables["day"].Value));
return answer;
Мне нужен был такой вариант.
Подскажите пожалуйста вариант что надо, но как убрать 0:00:00
 

djaga

Administrator
Команда форума
Регистрация
26.04.2020
Сообщения
554
Благодарностей
1 136
Баллы
93
Подскажите, пожалуйста, вариант, что надо, но как убрать 0:00:00
Можно просто заметой убрать 0:00:00, а ещё с помощью ToString() msdn или используя GetDateTimeFormats() msdn.

Простое решение с ToString()↓:
Получить только дату C#:
DateTime today = (Convert.ToDateTime(project.Variables["data"].Value));
DateTime answer = today.AddDays(Convert.ToDouble(project.Variables["day"].Value));
return answer.ToString("dd.MM.yyyy");
 
Последнее редактирование:
  • Спасибо
Реакции: _HEDELKA_

Chionodoxa

Client
Регистрация
10.02.2023
Сообщения
2
Благодарностей
2
Баллы
3
Приветствую , прочел все вышеизложенные варианты, и у меня остался вопрос.
У меня имеется переменная ( Дата ) формата - [MM'/'dd'/'yyyy HH:mm:ss], как я могу реализовать идею того, что:
DateTime exp = DateTime.Now; // Создаем текущую дату
будет создавать не нынешнюю дату и после этого прибавлять заданное/необходимое количество дней, а исходя уже из имеющейся у меня
переменной добавлять к ней необходимое число дней и записывать в новую переменную. Чуть выше был такой - же вопрос как я понял, но с форматом года, но я неМНОГО чайник в c# и не понимаю как мне реализовать эту задачу...
Заранее спасибо за ответ
 

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43
Приветствую , прочел все вышеизложенные варианты, и у меня остался вопрос.
У меня имеется переменная ( Дата ) формата - [MM'/'dd'/'yyyy HH:mm:ss], как я могу реализовать идею того, что:
DateTime exp = DateTime.Now; // Создаем текущую дату
будет создавать не нынешнюю дату и после этого прибавлять заданное/необходимое количество дней, а исходя уже из имеющейся у меня
переменной добавлять к ней необходимое число дней и записывать в новую переменную. Чуть выше был такой - же вопрос как я понял, но с форматом года, но я неМНОГО чайник в c# и не понимаю как мне реализовать эту задачу...
Заранее спасибо за ответ
Мой запрос к GPT-3:
Скопировал твое сообщение:
У меня имеется переменная ( Дата ) формата - [MM'/'dd'/'yyyy HH:mm:ss], как я могу реализовать идею того, что: DateTime exp = DateTime.Now; // Создаем текущую дату будет создавать не нынешнюю дату и после этого прибавлять заданное/необходимое количество дней, а исходя уже из имеющейся у меня переменной добавлять к ней необходимое число дней и записывать в новую переменную. Чуть выше был такой - же вопрос как я понял, но с форматом года, но я неМНОГО чайник в c# и не понимаю как мне реализовать эту задачу... Заранее спасибо за ответ
Ответ:
Для решения вашей задачи вам необходимо сначала преобразовать строку в переменную типа DateTime, а затем добавить необходимое количество дней с помощью метода AddDays() и сохранить результат в новой переменной.

Вот пример кода на C#, который должен справиться с этой задачей:

C#:
// Исходная строка даты
string dateString = "02/21/2023 12:34:56"; //можно установить переменую project.Variables["var"].Value

// Преобразуем строку в переменную типа DateTime
DateTime date = DateTime.ParseExact(dateString, "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);

// Добавляем необходимое количество дней
int daysToAdd = 10;
DateTime newDate = date.AddDays(daysToAdd);

// Выводим результат
Console.WriteLine("Исходная дата: {0}", date);
Console.WriteLine("Новая дата: {0}", newDate);
В данном примере мы сначала создаем строку dateString, содержащую дату в нужном формате. Затем мы используем метод ParseExact() для преобразования этой строки в переменную типа DateTime. В качестве второго аргумента этого метода мы передаем строку формата, который соответствует формату исходной строки даты.
Дальше он что-то сломался седня не стабильный
 

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
Мой запрос к GPT-3:
Скопировал твое сообщение:
У меня имеется переменная ( Дата ) формата - [MM'/'dd'/'yyyy HH:mm:ss], как я могу реализовать идею того, что: DateTime exp = DateTime.Now; // Создаем текущую дату будет создавать не нынешнюю дату и после этого прибавлять заданное/необходимое количество дней, а исходя уже из имеющейся у меня переменной добавлять к ней необходимое число дней и записывать в новую переменную. Чуть выше был такой - же вопрос как я понял, но с форматом года, но я неМНОГО чайник в c# и не понимаю как мне реализовать эту задачу... Заранее спасибо за ответ
Ответ:
Для решения вашей задачи вам необходимо сначала преобразовать строку в переменную типа DateTime, а затем добавить необходимое количество дней с помощью метода AddDays() и сохранить результат в новой переменной.

Вот пример кода на C#, который должен справиться с этой задачей:

C#:
// Исходная строка даты
string dateString = "02/21/2023 12:34:56"; //можно установить переменую project.Variables["var"].Value

// Преобразуем строку в переменную типа DateTime
DateTime date = DateTime.ParseExact(dateString, "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);

// Добавляем необходимое количество дней
int daysToAdd = 10;
DateTime newDate = date.AddDays(daysToAdd);

// Выводим результат
Console.WriteLine("Исходная дата: {0}", date);
Console.WriteLine("Новая дата: {0}", newDate);
В данном примере мы сначала создаем строку dateString, содержащую дату в нужном формате. Затем мы используем метод ParseExact() для преобразования этой строки в переменную типа DateTime. В качестве второго аргумента этого метода мы передаем строку формата, который соответствует формату исходной строки даты.
Дальше он что-то сломался седня не стабильный
Ошибку получаю:
Компиляция кода Ошибка в действии "CS0103" "The name 'CultureInfo' does not exist in the current context". [Строка: 5; Cтолбец: 72]
 

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43
Ошибку получаю:
Компиляция кода Ошибка в действии "CS0103" "The name 'CultureInfo' does not exist in the current context". [Строка: 5; Cтолбец: 72]
103527

C#:
using System;
using System.Globalization;
//все что выше общий код

// Исходная строка даты
string dateString = "02/21/2023 12:34:56";

// Преобразуем строку в переменную типа DateTime
DateTime date = DateTime.ParseExact(dateString, "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);

// Добавляем необходимое количество дней
int daysToAdd = 10;
DateTime newDate = date.AddDays(daysToAdd);

// Выводим результат
Console.WriteLine("Исходная дата: {0}", date);
Console.WriteLine("Новая дата: {0}", newDate);
 
  • Спасибо
Реакции: Chionodoxa

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
Непомогло, плохой ИИ.. ))
 

Chionodoxa

Client
Регистрация
10.02.2023
Сообщения
2
Благодарностей
2
Баллы
3
Мой запрос к GPT-3:
Скопировал твое сообщение:
У меня имеется переменная ( Дата ) формата - [MM'/'dd'/'yyyy HH:mm:ss], как я могу реализовать идею того, что: DateTime exp = DateTime.Now; // Создаем текущую дату будет создавать не нынешнюю дату и после этого прибавлять заданное/необходимое количество дней, а исходя уже из имеющейся у меня переменной добавлять к ней необходимое число дней и записывать в новую переменную. Чуть выше был такой - же вопрос как я понял, но с форматом года, но я неМНОГО чайник в c# и не понимаю как мне реализовать эту задачу... Заранее спасибо за ответ
Ответ:
Для решения вашей задачи вам необходимо сначала преобразовать строку в переменную типа DateTime, а затем добавить необходимое количество дней с помощью метода AddDays() и сохранить результат в новой переменной.

Вот пример кода на C#, который должен справиться с этой задачей:

C#:
// Исходная строка даты
string dateString = "02/21/2023 12:34:56"; //можно установить переменую project.Variables["var"].Value

// Преобразуем строку в переменную типа DateTime
DateTime date = DateTime.ParseExact(dateString, "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);

// Добавляем необходимое количество дней
int daysToAdd = 10;
DateTime newDate = date.AddDays(daysToAdd);

// Выводим результат
Console.WriteLine("Исходная дата: {0}", date);
Console.WriteLine("Новая дата: {0}", newDate);
В данном примере мы сначала создаем строку dateString, содержащую дату в нужном формате. Затем мы используем метод ParseExact() для преобразования этой строки в переменную типа DateTime. В качестве второго аргумента этого метода мы передаем строку формата, который соответствует формату исходной строки даты.
Дальше он что-то сломался седня не стабильный
Первый вариант решения тоже был - GPT, но сегодня он очень загружен.
Действительно код выглядит так, словно он должен сработать, но пока что выдает ошибку:
Компиляция кода Ошибка в действии "CS0103" "The name 'CultureInfo' does not exist in the current context". [Строка: 5; Cтолбец: 72]
но проблему решил.
Вот мой код решения кому нужно:

C#:
string dateString = project.Variables["last_change_status_date"].Value;
DateTime exp = DateTime.ParseExact(dateString, "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
exp = exp.AddDays(3); // Добавляем к дате 3 дня
project.Variables["new_change_status_date"].Value = exp.ToString(@"MM'/'dd'/'yyyy"); // Записываем результат в переменную ZP
так-же добавил:
using System.Globalization;
в Директивы using и общий код
 
  • Спасибо
Реакции: PandaCIB и one

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43
  • Спасибо
Реакции: one

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
Первый вариант решения тоже был - GPT, но сегодня он очень загружен.
Действительно код выглядит так, словно он должен сработать, но пока что выдает ошибку:
Компиляция кода Ошибка в действии "CS0103" "The name 'CultureInfo' does not exist in the current context". [Строка: 5; Cтолбец: 72]
но проблему решил.
Вот мой код решения кому нужно:

C#:
string dateString = project.Variables["last_change_status_date"].Value;
DateTime exp = DateTime.ParseExact(dateString, "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
exp = exp.AddDays(3); // Добавляем к дате 3 дня
project.Variables["new_change_status_date"].Value = exp.ToString(@"MM'/'dd'/'yyyy"); // Записываем результат в переменную ZP
так-же добавил:
using System.Globalization;
в Директивы using и общий код
Уже лучше, но теперь с DateTime проблема.

Выполнение действия CSharp OwnCode. Строка не распознана как действительное значение DateTime.
 

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43
Уже лучше, но теперь с DateTime проблема.

Выполнение действия CSharp OwnCode. Строка не распознана как действительное значение DateTime.
"MM/dd/yyyy HH:mm:ss" входные

Значит в переменной должно быть 02/22/2023 00:00:00
Месяц/день/год часы:минуты:секунды

Можешь поменять на dd.MM.yyyy HH:mm:ss
 
  • Спасибо
Реакции: one

Ostap1992

Client
Регистрация
26.02.2020
Сообщения
44
Благодарностей
5
Баллы
8
кто нибудь подскажет как прибавить месяц в дату ?
 

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