ein einfacher Code:Bit Flags - Was fehlt mir?
protected void Page_Load(object sender, EventArgs e)
{
DateTime now = DateTime.UtcNow;
lit.Text += "<br/>now.DayOfWeek: " + now.DayOfWeek.ToString();
// weekdays (Saturday is not included)
DayOfWeek runningDays = DayOfWeek.Monday | DayOfWeek.Tuesday | DayOfWeek.Wednesday | DayOfWeek.Thursday | DayOfWeek.Friday;
lit.Text += "<br/>" + runningDays.HasFlag(now.DayOfWeek);
lit.Text += "<br/>" + runningDays.HasAny(now.DayOfWeek);
lit.Text += "<br/>" + ((runningDays & now.DayOfWeek) != 0);
// weekend (Saturday is in a weekend)
runningDays = DayOfWeek.Saturday | DayOfWeek.Sunday;
lit.Text += "<br/>" + runningDays.HasFlag(now.DayOfWeek);
lit.Text += "<br/>" + runningDays.HasAny(now.DayOfWeek);
lit.Text += "<br/>" + ((runningDays & now.DayOfWeek) != 0);
}
Ein Helfer:
public static bool HasExactly(this DayOfWeek x, DayOfWeek y) { return x == y; }
public static bool HasAny(this DayOfWeek x, DayOfWeek y) { return 0 != (x & y); }
public static bool HasAll(this DayOfWeek x, DayOfWeek y) { return y == (x & y); }
heutige Ausgabe (Samstag)
now.DayOfWeek: Saturday
True
True
True
True
True
True
Aber die Ausgabe sollte wie:
now.DayOfWeek: Saturday
False
False
False
True
True
True
Wh bei vermisse ich hier?
0 (Sonntag) bis 6 (Samstag). – sisve
Ich wusste, dass ich dumm war :(Danke, dass du mich auf die Dokumente aufmerksam gemacht hast ... Ich vergesse ständig, dass sie ein wichtiger Teil der Entwicklerrolle sind ... aber ich habe wirklich angenommen, dass DayOfWeek eine Flag Enum war: o ( – balexandre