[Flags] public enum Weekday { None = 0, Mon = 1, Tue = 2, Wed = 4, Thu = 8, Fir = 16, Sat = 32, Sun = 64 } public class WorkingDay { public bool Mon { get; set; } public bool Tue { get; set; } public bool Wed { get; set; } public bool Thu { get; set; } public bool Fir { get; set; } public bool Sat { get; set; } public bool Sun { get; set; } public Weekday AllWorkingDays { get { return (Weekday)WorkingDayFlag; } set { int result = (int)value; this.WorkingDayFlag = result; } } public int WorkingDayFlag { get { Weekday result = this.Mon ? Weekday.Mon : 0; result |= this.Tue ? Weekday.Tue : 0; result |= this.Wed ? Weekday.Wed : 0; result |= this.Thu ? Weekday.Thu : 0; result |= this.Fir ? Weekday.Fir : 0; result |= this.Sat ? Weekday.Sat : 0; result |= this.Sun ? Weekday.Sun : 0; return (int)result; } set { this.Mon = ((Weekday)value & Weekday.Mon) == Weekday.Mon; this.Tue = ((Weekday)value & Weekday.Tue) == Weekday.Tue; this.Wed = ((Weekday)value & Weekday.Wed) == Weekday.Wed; this.Thu = ((Weekday)value & Weekday.Thu) == Weekday.Thu; this.Fir = ((Weekday)value & Weekday.Fir) == Weekday.Fir; this.Sat = ((Weekday)value & Weekday.Sat) == Weekday.Sat; this.Sun = ((Weekday)value & Weekday.Sun) == Weekday.Sun; } } }