Определить, является ли дата «рабочим выходным» - PullRequest
2 голосов
/ 16 декабря 2011

На моей работе мы находимся в плане 9/80, где мы получаем каждую вторую пятницу выходной.У нас есть небольшая программа, которая показывает элемент управления DevExpress.Scheduler, и я бы хотел покрасить наш «пятничный выходной» в другой цвет.Что мне нужно знать, так это как узнать, что свидание у нас в пятницу выходное?Выходной в пятницу всегда будет каждую вторую неделю (другими словами, мы не пропускаем неделю из-за праздника или чего-то в этом роде).У меня есть дата нашей первой пятницы выходного года, поэтому я думаю, что могу как-то использовать ее ... Я также могу получить дату из планировщика, так как она нарисована, поэтому мне есть с чем сравнить.

DateTime dtFirstFridayOff = new DateTime(2011, 1, 1);
DateTime dtCellDate = Convert.ToDateTime(e.Cell.Value);

Теперь я немного растерялся относительно того, как проверить, что dtCellDate не работает в пятницу.

Ответы [ 2 ]

5 голосов
/ 16 декабря 2011
    public static bool IsDateMultipleDays(DateTime originalDate, int numberOfDays, DateTime potentialDate)
    {
        var original = originalDate.Date; // to make sure that it doesn't have a time portion
        var potential = potentialDate.Date;
        var difference = potential - original;
        return (int)difference.TotalDays % numberOfDays == 0;
    }

Тогда вы бы назвали это так:

IsDateMultipleDays(dtFirstFridayOff, 14, dtCellDate)
0 голосов
/ 16 декабря 2011

Попробуйте это:

bool IsFridayOff(DateTime dt)
{
    if (dt.DayOfWeek != DayOfWeek.Friday)
    {
        return false;
    }

    DateTime dtFirstFridayOff = new DateTime(2011, 1, 1);
    TimeSpan span = dtFirstFridayOff - dt.Date;

    return (int) span.TotalDays%14 == 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...