Reputation: 780
I am doing a check on current time and ignore if its after friday 3pm til sunday 7pm. the code works but is there a better easier way to do this?
Boolean iCheck = true;
DateTime iCurTime = DateTime.Now;
//if its friday and 3pm or after don't check
if (iCurTime.ToString("ddd") == "Fri") {
if (iCurTime.TimeOfDay >= new TimeSpan(15, 0, 0)) {
iCheck = false;
}
}
//if its saturday dont check
if (iCurTime.ToString("ddd") == "Sat") {
iCheck = false;
}
//if its sunday and less than 7pm dont check
if (iCurTime.ToString("ddd") == "Sun") {
if (iCurTime.TimeOfDay <= new TimeSpan(19, 0, 0)) {
iCheck = false;
}
}
Upvotes: 1
Views: 85
Reputation: 34421
Not sure if this is better than your solution, but it works
//use Sunday_Monday midnight as reference
TimeSpan friday_3PM = new TimeSpan(4, 15, 0, 0);
TimeSpan sunday_7PM = new TimeSpan(6, 19, 0, 0);
DateTime now = DateTime.Now;
TimeSpan timeSpan = now - now.AddDays(-1 * (((int)now.DayOfWeek + 6) % 7)).Date;
if((timeSpan < friday_3PM) || (timeSpan > sunday_7PM))
{
}
Upvotes: 1
Reputation: 6963
I like LINQ...
var dtl = new List<DateTime>();
dtl.Add(DateTime.Now);
var DaysOfWeekToInclude = dtl.Where(
d => d.DayOfWeek == DayOfWeek.Friday ||
d.DayOfWeek != DayOfWeek.Saturday ||
d.DayOfWeek == DayOfWeek.Sunday);
var FirstFilter = DaysOfWeekToInclude.Where(
p =>
p.DayOfWeek == DayOfWeek.Friday && p.Hour <= 15);
var SecondFilter = FirstFilter.Where(
p => p.DayOfWeek == DayOfWeek.Sunday && p.Hour > 19);
var filtered = SecondFilter.First();
Upvotes: 1