Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Find # of hours between 2 dates, excluding weekends, in C#

Posted on 2008-10-27
7
Medium Priority
?
1,505 Views
Last Modified: 2013-11-07
I need to calculate the number of hours a ticket has been, or was open by subtracting 2 dates. All weekend hours need to be excluded. (All in C#) Can someone assist?
0
Comment
Question by:devo00
  • 3
  • 2
  • 2
7 Comments
 
LVL 12

Expert Comment

by:jazzIIIlove
ID: 22816701
Hi there;

yes we can...any code snippet you can provide us?

Best regards...
0
 
LVL 12

Expert Comment

by:jazzIIIlove
ID: 22816706
or algorithm?
0
 

Author Comment

by:devo00
ID: 22816761
Sure, so far I only display the flat difference in hours (see snippet). I need to adapt it to exclude weekends.

snippet.txt
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 3

Expert Comment

by:nullcory
ID: 22817887
Super quick, super dirty.  This calculates days but you could easily modify it to do hours.
I can modify it if you need.
            //Todays Date
            DateTime dt2 = DateTime.Now;
 
            //Previous Date
            DateTime dt = DateTime.Parse("10/15/2008");
 
            //TimeSpan Between Dates
            TimeSpan dt3 = dt2 - dt;
 
            //Count of days not including weekends
            int dayCount = 0;
 
            //1 day timespan
            TimeSpan ts = new TimeSpan(1, 0, 0, 0);
 
            for (int i = 1; i < dt3.Days+1; i++)
            {
                //Today - TimeSpan(1 Day)
                dt2 = dt2.Subtract(ts);
 
                if (dt2.DayOfWeek != DayOfWeek.Saturday && dt2.DayOfWeek != DayOfWeek.Sunday)
                {
                    dayCount++;
                }
               
            }

Open in new window

0
 

Author Comment

by:devo00
ID: 22821384
Yeah I definitely need hours, as in, if someone starts a ticket on Friday and happens to close it on a Saturday, none of the hours from Saturday count, and only the partial day (in hours) for Friday will count.
I'm not seeing a straight-forward way to do this above, would we convert the day count to a decimal and multiply by 24 at the end?
0
 
LVL 3

Accepted Solution

by:
nullcory earned 2000 total points
ID: 22824034
I didn't have a chance to fully debug this but it looks like it works.
DateTime dt2 = DateTime.Now;
 
            DateTime dt = DateTime.Parse("10/15/2008");
 
            TimeSpan dt3 = dt2 - dt;
 
            int hourCount = 0;
            int totalHours = 0;
 
            totalHours += dt3.Days * 24;
            totalHours += dt3.Hours;
 
            //1 hour timespan
            TimeSpan hour = new TimeSpan(1, 0, 0);
 
            for (int i = 1; i < totalHours+1; i++)
            {
                dt2 = dt2.Subtract(hour);
 
                if (dt2.DayOfWeek != DayOfWeek.Saturday && dt2.DayOfWeek != DayOfWeek.Sunday)
                {
                    hourCount++;
                }
            }

Open in new window

0
 

Author Closing Comment

by:devo00
ID: 31510525
Excellent, thank you!  It seems to work for every test I've done so far.
0

Featured Post

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
Without even knowing it, most of us are using web applications on a daily basis.  In fact, Gmail and Yahoo email, Twitter, Facebook, and eBay are used by most of us daily—and they are web applications. We generally confuse these web applications to…
Learn how to set-up custom confirmation messages to users who complete your Wufoo form. Include inputs from fields in your form, webpage redirects, and more with Wufoo’s confirmation options.
Learn how to set-up PayPal payment integration in your Wufoo form. Allow your users to remit payment through PayPal upon completion of your online form. This is helpful for collecting membership payments, customer payments, donations, and more.
Suggested Courses

877 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question