Сравнение DateTime DayOfWeek - PullRequest
       5

Сравнение DateTime DayOfWeek

7 голосов
/ 31 января 2010

Я бы хотел сравнить дату, чтобы увидеть, будет ли она до субботы, например:

        //Check if Saturday YET
        if (MYWorkDay.DayOfWeek < DateTime.DayOfWeek.Saturday)
            IGottaWork();
        else
            Party();

Кажется, нет никакого способа сделать это.

Есть ли способ?

Заранее спасибо

Ответы [ 5 ]

12 голосов
/ 31 января 2010

Почему не это?

    if (MYWorkDay.DayOfWeek != DayOfWeek.Saturday
          && MYWorkDay.DayOfWeek != DayOfWeek.Sunday) 
    {
        IGottaWork();
    }
    else
        Party();

Или даже лучше:

List<DayOfWeek> partyDays = new List<DayOfWeek> {
    DayOfWeek.Saturday, DayOfWeek.Sunday
};

if (partyDays.Contains(MYWorkDay.DayOfWeek))
    Party();
else
    IGottaWork();
3 голосов
/ 26 января 2013

Из MSDN:

Значение констант в перечислении DayOfWeek варьируется от DayOfWeek.Sunday до DayOfWeek.Saturday.При приведении к целому числу его значение колеблется от нуля (что указывает на DayOfWeek.Sunday) до шести (что указывает на DayOfWeek.Saturday).

Таким образом, вы также можете использовать операторы больше и меньше для вашегорасчет.

//Check if Saturday YET
if (MYWorkDay.DayOfWeek < DayOfWeek.Saturday && MYWorkDay.DayOfWeek > DayOfWeek.Sunday)
    IGottaWork();
else
    Party();
1 голос
/ 31 января 2010

Если вы предпочитаете сравнивать, а не проверять список, вы также можете сделать это:

if ((MYWorkDay.DayOfWeek.CompareTo(DayOfWeek.Sunday) > 0) && (MYWorkDay.DayOfWeek.CompareTo(DayOfWeek.Saturday) < 0))
{
      IGottaWork();
}
else
{
      Party();
}
1 голос
/ 31 января 2010

DayOfWeek - перечисление, начинающееся с воскресенья как 0 и субботы как последнего элемента, следовательно, 6 в целочисленных терминах. Подумайте об этом при сравнении.

0 голосов
/ 31 января 2010

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

if (new [] {DayOfWeek.Saturday, DayOfWeek.Sunday}.Contains(d.DayOfWeek)) {
  // party :D
} else {
  // work  D:
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...