проверка диапазона дат в C # - PullRequest
0 голосов
/ 15 января 2019

Как определить, находится ли дата во входных данных в определенном диапазоне дат (скажем, например, последние 7 дней, то есть я скажу -7). Если это в течение последних 7 дней, сделайте что-нибудь, а что-нибудь еще

В настоящее время я могу сделать это, но я не знаю, как это изменить, чтобы достичь того, чего я хочу.

string a = "-1"; // These are values that are configurable based on which date is checked. Yesterday means, -1 for example. 
string b = "-15"; // -15 means within last 15 days.

DateTime d = input;
DateTime e = d.AddDays(int.Parse(a));
if (d is between datetime.now and e)
{
   //do something
} 
else do something

Ответы [ 3 ]

0 голосов
/ 15 января 2019

Вы можете использовать операторы меньше (<) и больше (>).

Я имею в виду, вы должны изменить свое условие if:

if (d >= e && d <= DateTime.Now)
0 голосов
/ 15 января 2019

Вы можете попробовать что-то вроде этого, чтобы сравнить Date часть без Time

string a = "-1"; // These are values that are configurable based on which date is checked. Yesterday means, -1 for example. 
string b = "-15"; // -15 means within last 15 days.
DateTime d = new DateTime();
DateTime e = d.AddDays(int.Parse(a));
if (DateTime.Now.Date >= d.Date && e.Date <= d.Date)
{

}
0 голосов
/ 15 января 2019

Во-первых, используйте значимые имена вместо a и b, во-вторых: используйте правильные типы данных (вы вообще не используете b):

int dayOffset = -1;
int lowerBound = -15;

var currentDate = DateTime.Now;

if(input >= currentDate.AddDays(dayOffset) && input <= currentDate)
{ // do smoething }

Используя ваши имена:

var currentDate = DateTime.Now;

if(input >= currentDate.AddDays(a) && input <= currentDate)
{ // do smoething }
...