C # Добавить элементы, если они находятся между датой - PullRequest
1 голос
/ 20 октября 2011

Я создал программу, которая должна будет добавлять элементы, если они находятся между датами, вот код, который я использую:

if (day >= fromDay - 1 && day <= tillDay && month >= fromMonth - 1 && month <= tillMonth && year >= fromYear - 1 && year <= tillYear) { listBox1.Items.Add(OpenFiles[m_index].getFileName()); }

Код работает нормально, но в нем есть ошибка: он проверяет, находится ли день, месяц и год между началом и окончанием. Так что даже если вы хотите что-то добавить с 19.02.2011 по 15.04.2011, это ничего не добавит и не увидит. Пожалуйста, помогите мне с этим.

Ответы [ 4 ]

5 голосов
/ 20 октября 2011

Вы должны сравнить даты , а не компоненты дат:

// Presumably you can determine these once... (possibly rename to earliestValid
// and latestValid, or something like that?)
DateTime from = new DateTime(fromYear, fromMonth, fromDay);
DateTime to = new DateTime(toYear, toMonth, toDay);

// Then for each candidate...
...
DateTime date = new Date(year, month, day);
if (date >= from && date <= to)
{
    listBox1.Items.Add(...);
}

(Конечно, для типа date вместо даты и времени посмотрите Noda Time :)

0 голосов
/ 20 октября 2011

Почему бы вам не создать дату из даты from и toDate и из фактической даты и сделать это>

if(fromDate < date && date <= tillDate)
{
}
0 голосов
/ 20 октября 2011

Это будет работать следующим образом:

var dateFrom = new DateTime(yearFrom, monthFrom, dayFrom);
var dateTo = new DateTime(yearTo, monthTo, dayTo);
var actualDate = new DateTime(year, month, day);
if ((dateFrom < actualDate) && (actualDate < dateTo))
{
    // Do something
}

Если вы сравниваете части дат отдельно, это не будет работать (как вы уже узнали :-D)

0 голосов
/ 20 октября 2011
DateTime fromTime;
DateTime toTime;
DateTime currentTime = DateTime.Now;

if (currentTime >= fromTime && currentTime <= toTime)
{
 //to do some stuff
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...