Проверьте, существует ли День Месяца между двумя DateTime, независимо от года - PullRequest
0 голосов
/ 14 декабря 2011

ТЛ; др;Как бы вы взяли StartDate-DateTime: 10 декабря 2011 года, EndDate-DateTime 15 января 2012 года и определите, подходят ли 1 декабря, 9 декабря, 17 декабря, 25 декабря, 1 января и 9 января этому интервалу времени, исключая год иполучить Bool для каждого?

У меня есть визуальный временной интервал, состоящий из линейного графика, показывающего, когда конкретная деятельность активна.

enter image description here

IМне дан объект с начальной и конечной датами.

Я покрыл временной интервал с помощью DIV с красным фоном, представляющим 1/4 каждого месяца, с именами JanQ1, JanQ2 и т. д.

Они начинаются как видимость: скрытые, но должны быть изменены в случае, если активность активна в течение части года.

Проблема, с которой я сталкиваюсь, заключается в получении истинного /ложное значение, которое игнорирует данный год.

Например, событие, которое проходит с 10 декабря 2011 года по 15 января 2012 года, я хотел бы получить этот набор результатов:

DecQ1=False,
DecQ2=True,
DecQ3=True,
DecQ4=True,
JanQ1=True,
JanQ2=True,
JanQ3=False

Ответы [ 2 ]

1 голос
/ 14 декабря 2011

Будет ли эта функция работать для вас?

bool IsDateContained(DateTime startDate, DateTime endDate, int month, int day) {
    bool retVal = false;
    if (startDate < endDate) {
        do {
            if (startDate.Month == month && startDate.Day == day) {
                retVal = true;
                break;
            }
            startDate = startDate.AddDays(1);
        } while (startDate < endDate);
    } else {
        //crazy world!!
    }
    return retVal;
}
0 голосов
/ 14 декабря 2011

Создайте новые объекты DateTime перед сравнением, установив их в тот же год - http://msdn.microsoft.com/en-us/library/wb249tb7.aspx.

...