XK8ER
XK8ER

Reputation: 780

Using time to check if its between friday until sunday and ignore

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

Answers (2)

jdweng
jdweng

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

JWP
JWP

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

Related Questions