Дата, попадающая в дипазон двух дат

Antares

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

Задача такая:
Есть дата, например, "03/10/18" (дата1, мм/дд/гг). И соответственно есть 2 даты в таком же формате, которые ограничивают диапазон, например "03/06/18" (дата2) и "03/12/18" (дата3). Соответственно, если дата1 попадает в диапазон дата2 и дата3 (включительно, т.е. 03/06/18 подходит), то выводим совершаем определенное условие, например, заносим в переменную "подходит" ответ "да".

Если не сложно, и кто-то разрабатывал код для подобной конструкции, поделитесь сниппетом.
 

Antares

Client
Регистрация
19.01.2018
Сообщения
131
Благодарностей
9
Баллы
18

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
C датами в формате год/месяц/день вообще можно не париться и сравнивать как строки. Так что если есть возможность иметь даты в таком формате - можешь использовать этот метод
 

Antares

Client
Регистрация
19.01.2018
Сообщения
131
Благодарностей
9
Баллы
18
C датами в формате год/месяц/день вообще можно не париться и сравнивать как строки. Так что если есть возможность иметь даты в таком формате - можешь использовать этот метод
Единственный вариант (который я вижу), чтобы получить такой формат это сначала разбить все по переменным "дд", "мм", "гг", потом все это соединить в нужном порядке и так для каждой даты (Вопрос надо ли какой то "атрибут" получившийся переменной передавать, чтобы зенка понимала, что это дата). Вариант с юниксом видется мне более простым (либо я не вижу подводных камней этого способа). Вопрос только в том, как перевести в юникс -_-
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Единственный вариант (который я вижу), чтобы получить такой формат это сначала разбить все по переменным "дд", "мм", "гг", потом все это соединить в нужном порядке и так для каждой даты (Вопрос надо ли какой то "атрибут" получившийся переменной передавать, чтобы зенка понимала, что это дата). Вариант с юниксом видется мне более простым (либо я не вижу подводных камней этого способа). Вопрос только в том, как перевести в юникс -_-
ну я же говорил, если есть возможность получать дату в таком формате)
 

evgen2208

Client
Регистрация
12.10.2016
Сообщения
130
Благодарностей
162
Баллы
43
Если не сложно, и кто-то разрабатывал код для подобной конструкции, поделитесь сниппетом.
Есть с примерами:

переводит строку в формат DateTime
https://msdn.microsoft.com/ru-ru/library/system.datetime.parse(v=vs.110).aspx

Сравнивает два DateTime:
https://msdn.microsoft.com/ru-ru/library/system.datetime.compare(v=vs.110).aspx

Правильный результат "-2" любой отличный от него соответственно неправильный
Код:
return DateTime.Compare(DateTime.Parse(project.Variables["data1"].Value),DateTime.Parse(project.Variables["dataX"].Value)) + DateTime.Compare(DateTime.Parse(project.Variables["dataX"].Value),DateTime.Parse(project.Variables["data2"].Value));
Можно поиграться и менять даты местами (тогда и значение верное будет не -2, а 0 или 2), или использовать отдельно лев часть и прав.
 
Последнее редактирование:
  • Спасибо
Реакции: Antares

Antares

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

переводит строку в формат DateTime
https://msdn.microsoft.com/ru-ru/library/system.datetime.parse(v=vs.110).aspx

Сравнивает два DateTime:
https://msdn.microsoft.com/ru-ru/library/system.datetime.compare(v=vs.110).aspx

Правильный результат "-2" любой отличный от него соответственно неправильный
Код:
return DateTime.Compare(DateTime.Parse(project.Variables["data1"].Value),DateTime.Parse(project.Variables["dataX"].Value)) + DateTime.Compare(DateTime.Parse(project.Variables["dataX"].Value),DateTime.Parse(project.Variables["data2"].Value));
Можно поиграться и менять даты местами (тогда и значение верное будет не -2, а 0 или 2), или использовать отдельно лев часть и прав.

Спасибо за ответ. Завтра буду тестировать.
 

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