2010-12-07 2 views
0

В app.config я поставлю цикл строковое значение: «Понедельник», «Вторник», ..., «Ежедневно». Из этого значения я хотел присвоить перечисление <Flags()>. Просто использование DayOfWeek не дает мне возможности отмечать процесс как повседневную жизнь. Есть ли доступный класс .Net, который обеспечивает день недели как флаг?Как я могу использовать перечисление DayOfWeek для отметки циклов процесса?

В то же время, я придумал следующее:

<Flags()> _ 
Public Enum enumExportCycle As Integer 
    Monday = DayOfWeek.Monday 
    Tuesday = DayOfWeek.Tuesday 
    Wednesday = DayOfWeek.Wednesday + 1 
    Thursday = DayOfWeek.Thursday + 4 
    Friday = DayOfWeek.Friday + 11 
    Saturday = DayOfWeek.Saturday + 26 
    Sunday = DayOfWeek.Sunday + 64 
    Daily = Monday Or Tuesday Or Wednesday Or Thursday Or Friday Or Saturday Or Sunday 
End Enum 

Он чувствует себя несколько хаком и я ищу лучший способ.

ответ

4

это будет работать, правильно?

<Flags()> _ 
Public Enum enumExportCycle As Integer 
    Monday = 1 
    Tuesday = 2 
    Wednesday = 4 
    Thursday = 8 
    Friday = 16 
    Saturday = 32 
    Sunday = 64 
    Daily = Monday Or Tuesday Or Wednesday Or Thursday Or Friday Or Saturday Or Sunday 
End Enum 

или это

<Flags()> _ 
Public Enum enumExportCycle As Integer 
    Monday = 2^DayOfWeek.Monday 
    Tuesday = 2^DayOfWeek.Tuesday 
    Wednesday = 2^DayOfWeek.Wednesday 
    Thursday = 2^DayOfWeek.Thursday 
    Friday = 2^DayOfWeek.Friday 
    Saturday = 2^DayOfWeek.Saturday 
    Sunday = 2^DayOfWeek.Sunday 
    Daily = Monday Or Tuesday Or Wednesday Or Thursday Or Friday Or Saturday Or Sunday 
End Enum 

так DayOfWeek начинается с 0 (воскресенье) до 6 (суббота)

+0

иногда самые простые решения являются наиболее трудно увидеть. Я в лесу и не могу найти дерево. Благодарю. – IAbstract 2010-12-07 20:31:58

+1

+1 для помещения его на язык op – marr75 2010-12-07 20:39:49

5

Вот ссылка на DaysOfWeek перечислимого (используется для установки рецидивов) для PocketOutlook на Windows Mobile: http://msdn.microsoft.com/en-us/library/microsoft.windowsmobile.pocketoutlook.daysofweek.aspx

это определяет перечисление, как это:

[Flags] 
public enum DaysOfWeek 
{ 
    Sunday = 1, 
    Monday = 2, 
    Tuesday = 4, 
    Wednesday = 8, 
    Thursday = 16, 
    Friday = 32, 
    Saturday = 64 
} 

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

[Flags] 
public enum DaysOfWeek 
{ 
    Sunday = 1, 
    Monday = 2, 
    Tuesday = 4, 
    Wednesday = 8, 
    Thursday = 16, 
    Friday = 32, 
    Saturday = 64, 
    Daily = Sunday + Monday + Tuesday + Wednesday + Thursday + Friday + Saturday, 
    Weekdays = Monday + Tuesday + Wednesday + Thursday + Friday, 
    Weekends = Sunday + Saturday 
} 
Смежные вопросы