Разница в сравнении дат

maxim.gutareff

Пользователь
Регистрация
27.01.2018
Сообщения
255
Благодарностей
22
Баллы
18
Всем привет. У меня в переменой лежит дата: 28.10.2021
Мне нужно сравнить ее с текущей и выдать число разницы в количестве дней.
Если в переменной лежит: 28.10.2021 а текущая дата 12.10.2021, то нужно вернуть: 16
Если же в переменной 03.10.2021 а ткущая 12.10.2021, то вернуть: -9

Я находил коды в сравнении дат, то они просто выдают больше или меньше. А мне надо конкретное число разницы в днях.
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 789
Благодарностей
1 954
Баллы
113

maxim.gutareff

Пользователь
Регистрация
27.01.2018
Сообщения
255
Благодарностей
22
Баллы
18
  • Спасибо
Реакции: Konrod_m

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 788
Благодарностей
2 454
Баллы
113
Всем привет. У меня в переменой лежит дата: 28.10.2021
Мне нужно сравнить ее с текущей и выдать число разницы в количестве дней.
Если в переменной лежит: 28.10.2021 а текущая дата 12.10.2021, то нужно вернуть: 16
Если же в переменной 03.10.2021 а ткущая 12.10.2021, то вернуть: -9

Я находил коды в сравнении дат, то они просто выдают больше или меньше. А мне надо конкретное число разницы в днях.
C#:
string line = "3.10.2021"; // В переменной лежит дата
DateTime date_line = Convert.ToDateTime(line); // Преобразуем её в формат, позволяющий выполнять какие-то манипуляции
DateTime now = DateTime.Now; // Получаем текущую дату
int days = (int)(date_line.Subtract(now)).TotalDays; // Считаем разницу
project.SendInfoToLog(string.Format(@"line: {0:dd-MM-yyyy} now: {1:dd-MM-yyyy} = days: {2}", date_line,now, days)); // выводим в лог
84126


Если в переменной лежит: 28.10.2021 а текущая дата 12.10.2021, то нужно вернуть: 16
84127


C#:
string line = "28.10.2021"; // В переменной лежит дата
DateTime date_line = Convert.ToDateTime(line); // Преобразуем её в формат, позволяющий выполнять какие-то манипуляции
DateTime now = DateTime.Now; // Получаем текущую дату
var days = (double)(date_line.Subtract(now)).TotalDays; // Считаем разницу
project.SendInfoToLog(string.Format(@"line: {0:dd-MM-yyyy} now: {1:dd-MM-yyyy} = days: {2}", date_line,now, days)); // выводим в лог
Короче округлять надо....
84128
 
Последнее редактирование:
  • Спасибо
Реакции: Ilshakin

maxim.gutareff

Пользователь
Регистрация
27.01.2018
Сообщения
255
Благодарностей
22
Баллы
18
C#:
string line = "3.10.2021"; // В переменной лежит дата
DateTime date_line = Convert.ToDateTime(line); // Преобразуем её в формат, позволяющий выполнять какие-то манипуляции
DateTime now = DateTime.Now; // Получаем текущую дату
int days = (int)(date_line.Subtract(now)).Days; // Считаем разницу
project.SendInfoToLog(string.Format(@"line: {0:dd-MM-yyyy} now: {1:dd-MM-yyyy} = days: {2}", date_line,now, days)); // выводим в лог
Посмотреть вложение 84126
Не получается за место даты переменную вписать:


string line = "project.Variables["data_do"].Value"; // В переменной лежит дата
DateTime date_line = Convert.ToDateTime(line); // Преобразуем её в формат, позволяющий выполнять какие-то манипуляции
DateTime now = DateTime.Now; // Получаем текущую дату
int days = (int)(date_line.Subtract(now)).Days; // Считаем разницу
project.SendInfoToLog(string.Format(@"line: {0:dd-MM-yyyy} now: {1:dd-MM-yyyy} = days: {2}", date_line,now, days)); // выводим в лог

И мне не надо в лог. Мне надо значение возвращать в переменную.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 788
Благодарностей
2 454
Баллы
113
Не получается за место даты переменную вписать:


string line = "project.Variables["data_do"].Value"; // В переменной лежит дата
DateTime date_line = Convert.ToDateTime(line); // Преобразуем её в формат, позволяющий выполнять какие-то манипуляции
DateTime now = DateTime.Now; // Получаем текущую дату
int days = (int)(date_line.Subtract(now)).Days; // Считаем разницу
project.SendInfoToLog(string.Format(@"line: {0:dd-MM-yyyy} now: {1:dd-MM-yyyy} = days: {2}", date_line,now, days)); // выводим в лог

И мне не надо в лог. Мне надо значение возвращать в переменную.
Кавычки лишние.
Кавычки лишние:
string line = project.Variables["data_do"].Value; // В переменной лежит дата
DateTime date_line = Convert.ToDateTime(line); // Преобразуем её в формат, позволяющий выполнять какие-то манипуляции
DateTime now = DateTime.Now; // Получаем текущую дату
int days = (int)(date_line.Subtract(now)).Days; // Считаем разницу
project.SendInfoToLog(string.Format(@"line: {0:dd-MM-yyyy} now: {1:dd-MM-yyyy} = days: {2}", date_line,now, days)); // выводим в лог

return days;
 
  • Спасибо
Реакции: brun0 и maxim.gutareff

maxim.gutareff

Пользователь
Регистрация
27.01.2018
Сообщения
255
Благодарностей
22
Баллы
18
Кавычки лишние.
Кавычки лишние:
string line = project.Variables["data_do"].Value; // В переменной лежит дата
DateTime date_line = Convert.ToDateTime(line); // Преобразуем её в формат, позволяющий выполнять какие-то манипуляции
DateTime now = DateTime.Now; // Получаем текущую дату
int days = (int)(date_line.Subtract(now)).Days; // Считаем разницу
project.SendInfoToLog(string.Format(@"line: {0:dd-MM-yyyy} now: {1:dd-MM-yyyy} = days: {2}", date_line,now, days)); // выводим в лог

return days;
Спасибо! 10 баксов конечно не дам, но 1 могу скинуть. На киви или юмани. Номер в личку)
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 788
Благодарностей
2 454
Баллы
113
Спасибо! 10 баксов конечно не дам, но 1 могу скинуть. На киви или юмани. Номер в личку)
На форуме друг-другу помогают бесплатно :-) Достаточно кнопочки "Спасибо" :-)


Подправил, чтобы не заморачиваться округлением:
string line = "28.10.2021"; // В переменной лежит дата
DateTime date_line = Convert.ToDateTime(line); // Преобразуем её в формат, позволяющий выполнять какие-то манипуляции
DateTime now = DateTime.Now; // Получаем текущую дату
DateTime now2 = new DateTime(now.Year, now.Month, now.Day); // Получаем текущую дату без часов, минут, секунд
var days = (int)(date_line.Subtract(now2)).TotalDays; // Считаем разницу
project.SendInfoToLog(string.Format(@"line: {0:dd-MM-yyyy} now: {1:dd-MM-yyyy} = days: {2}", date_line,now2, days)); // выводим в лог
return days;
 
Последнее редактирование:

maxim.gutareff

Пользователь
Регистрация
27.01.2018
Сообщения
255
Благодарностей
22
Баллы
18
На форуме друг-другу помогают бесплатно :-) Достаточно кнопочки "Спасибо" :-)


Подправил, чтобы не заморачиваться округлением:
string line = "28.10.2021"; // В переменной лежит дата
DateTime date_line = Convert.ToDateTime(line); // Преобразуем её в формат, позволяющий выполнять какие-то манипуляции
DateTime now = DateTime.Now; // Получаем текущую дату
DateTime now2 = new DateTime(now.Year, now.Month, now.Day); // Получаем текущую дату без часов, минут, секунд
var days = (int)(date_line.Subtract(now2)).TotalDays; // Считаем разницу
project.SendInfoToLog(string.Format(@"line: {0:dd-MM-yyyy} now: {1:dd-MM-yyyy} = days: {2}", date_line,now2, days)); // выводим в лог
return days;
Спасибо и еще раз, но есть проблема. Если дата 12.10.2021 и 13.10.2021 то в обоих случаях выдает ваш код - 0. С 13 должен ведь 1 выдавать. Я понимаю что он еще часы,минуты, секунды считает, но мне не надо их. Мне только дату.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 788
Благодарностей
2 454
Баллы
113
Спасибо и еще раз, но есть проблема. Если дата 12.10.2021 и 13.10.2021 то в обоих случаях выдает ваш код - 0. С 13 должен ведь 1 выдавать. Я понимаю что он еще часы,минуты, секунды считает, но мне не надо их. Мне только дату.
Если Вы прочитали сообщение, которое только что процитировали и используете этот код - должно работать без ошибок.
Вот скриншот что у меня получается:
84145
 

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