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

  • Автор темы Автор темы Troll_UA
  • Дата начала Дата начала

Troll_UA

Client
Регистрация
11.04.2016
Сообщения
121
Реакции
38
Баллы
28
Подскажите, как к дате которая хранится в переменной добавить определенное количество дней которое также хранится в переменной?
 
Вопрос срочный, кто знает напишите.
 
Вопрос срочный, кто знает напишите.
Вроде в C# такие методы были. В ту сторону копать. Или переводить дату в количество дней от Рождества Христова, прибавлять дни и вычислять матаном или через какой-нибудь онлайн сервис какое это число.
 
Да не. там же например 28ое число, + 5 дней например, это уже и изменение месяца.
Тут смысла что-то в файл выносить нет.
 
Да не. там же например 28ое число, + 5 дней например, это уже и изменение месяца.
Тут смысла что-то в файл выносить нет.
А, да, действительно. Но если помучаться, можно все это обойти))
 
Вопрос срочный, кто знает напишите.
Код:
Развернуть Свернуть Копировать
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
Свой код -> 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
 
Вопрос решился.

Код:
Развернуть Свернуть Копировать
DateTime today = (Convert.ToDateTime(project.Variables["data"].Value));
DateTime answer = today.AddDays(Convert.ToDouble(project.Variables["day"].Value));
return answer;

Мне нужен был такой вариант.
 
  • Оценить
Реакции: irr и phoenixs
Свой код -> 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
 
п.с.

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

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

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
Попробуйте так:
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
Есть такого формат дата 02.11.2020 как год увеличить на 10 лет чтобы было 02.11.2030
 
Есть такого формат дата 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
 
А дату как с переменной взять?

var exp = project.Variables["data"].Value; сделал так не получился выдает ошибку
 
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

сделал так не получился выдает ошибку
 
Последнее редактирование:
А дату как с переменной взять?
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
Вопрос решился.

Код:
Развернуть Свернуть Копировать
DateTime today = (Convert.ToDateTime(project.Variables["data"].Value));
DateTime answer = today.AddDays(Convert.ToDouble(project.Variables["day"].Value));
return answer;

Мне нужен был такой вариант.
Подскажите пожалуйста вариант что надо, но как убрать 0:00:00
 
Подскажите, пожалуйста, вариант, что надо, но как убрать 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_
Приветствую , прочел все вышеизложенные варианты, и у меня остался вопрос.
У меня имеется переменная ( Дата ) формата - [MM'/'dd'/'yyyy HH:mm:ss], как я могу реализовать идею того, что:
DateTime exp = DateTime.Now; // Создаем текущую дату
будет создавать не нынешнюю дату и после этого прибавлять заданное/необходимое количество дней, а исходя уже из имеющейся у меня
переменной добавлять к ней необходимое число дней и записывать в новую переменную. Чуть выше был такой - же вопрос как я понял, но с форматом года, но я неМНОГО чайник в c# и не понимаю как мне реализовать эту задачу...
Заранее спасибо за ответ
 
Приветствую , прочел все вышеизложенные варианты, и у меня остался вопрос.
У меня имеется переменная ( Дата ) формата - [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. В качестве второго аргумента этого метода мы передаем строку формата, который соответствует формату исходной строки даты.
Дальше он что-то сломался седня не стабильный
 
Мой запрос к 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]
 
Ошибку получаю:
Компиляция кода Ошибка в действии "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
Непомогло, плохой ИИ.. ))
 
Мой запрос к 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
  • Оценить
Реакции: one
Первый вариант решения тоже был - 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.
 
Уже лучше, но теперь с DateTime проблема.

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

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

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

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