Search code examples
vb.netenumsdayofweek

How can I use DayOfWeek enum to flag process cycles?


In app.config, I supply a cycle string value: "Monday", "Tuesday", ..., "Daily". From that value I wanted to assign a <Flags()> enum. Simply using DayOfWeek does not give me the ability to flag a process as a daily routine. Is there an available .Net class that does provide the day of week as a flag?

In the meantime, I devised the following:

<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

It feels somewhat hackish and I am looking for a better way.


Solution

  • this will work, right?

    <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
    

    or this

    <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
    

    since DayOfWeek start from 0 (Sunday) to 6 (Saturday)