un semplice codice:Bit Flags - Cosa mi manca?
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);
}
Un aiuto:
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); }
uscita di oggi (Sabato)
now.DayOfWeek: Saturday
True
True
True
True
True
True
Ma l'uscita dovrebbe essere come:
now.DayOfWeek: Saturday
False
False
False
True
True
True
Wh sono qui che mi manca?
0 (Domenica) a 6 (Sabato). – sisve
Sapevo di essere stato stupido :(Grazie per avermi segnalato i documenti ... Continuo a dimenticare che sono una parte importante del ruolo di sviluppatore ... ma ho davvero supposto che DayOfWeek fosse un Enum di bandiera: o ( – balexandre