DateDiff question, need count for 8 hours a day including weekends and holidays

Posted on 2008-10-15
Last Modified: 2008-11-10
Should be pretty simple really, but I am in brainfart mode this am (pardon the expression), lack of caffeine again, I suppose...

I have two dates (startDate and endDate), they represent when a ticket is opened and closed.  There will be a third field to be used later for 'workTime'.  

For each day (24 hour period) in the dateDiff (including holidays and weekends), I need to add 8 hours, then when I have the final number, I need to subtract the value of the 'workTime' field.

Question by:cwickens
  • 3

Expert Comment

ID: 22719992

Author Comment

ID: 22720135
It looks like this is only available in MS Project/VBA.  I am using it in a Web App with VB,

Any thoughts on using dateDiff and converting it or a VB example of projectDateDiff?

Author Comment

ID: 22720238
ok, I am making progress...  I can use the dateDIff and return the number of days, hours, minutes and seconds.

I get the result as 3.13:30:00  (3 days, 13 hours, 30 minutes, 0 seconds).  I need to parse that result into: 24 (3 8 hour periods) + 8 (in the 13 hour block)  + .5 (for the 30 minute) = 32.5

ugh....thoughts anyone?
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim startDate As DateTime = Me.RadStartDateTimePicker.SelectedDate

        Dim endDate As DateTime = Me.RadStartDateTimePicker0.SelectedDate

        Dim totalTime As String = ""

        totalTime = endDate.Date.Subtract(startDate).ToString

        Me.LabelTotalTime.Text = totalTime

    End Sub

Open in new window


Accepted Solution

cwickens earned 0 total points
ID: 22886590
I found the solution, I am using Telerik's radControls and ended up using dateDiff along with regular math to get the values I wanted.  There is probably a better method, however, this works for what I need.
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

        If Me.RadStartDateTimePicker.IsEmpty Then

            Me.LabelNoStartDate.Text = "Start Date/Time Required"

            Exit Sub

        ElseIf Me.RadStartDateTimePicker0.IsEmpty Then

            Me.LabelNoStartDate.Text = ""

            Me.LabelNoEndDate.Text = "End Date/Time Required"

            Exit Sub


            ' get start and end date values

            Dim startDate As DateTime = Me.RadStartDateTimePicker.SelectedDate.Value

            Dim endDate As DateTime = Me.RadStartDateTimePicker0.SelectedDate.Value

            ' calculate total event minutes

            Dim totalHours As Double = DateDiff(DateInterval.Hour, startDate, endDate)

            ' convert total minutes to 8 hour days

            Dim intTotalHours As Double = totalHours / 3

            ' get value of work hours and minutes

            Dim intWorkTime As Double = Me.TextBoxWorkTime.Text

            ' calculate standby time

            Dim standbyTime As String = intTotalHours - intWorkTime

            'check to see if value is positive

            If standbyTime < 0 Then

                Me.LabelNegativeValue.Text = "The Standby Time can not be less than '0', Please check your date/time values"

                Exit Sub

            End If

            Me.LabelTotalTime.Text = intTotalHours & " Total Hours"

            Me.LabelStandBy.Text = standbyTime.ToString & " Standby Time"

            Me.LabelWorkTime.Text = intWorkTime.ToString & " Work Time"

            Me.LabelNoEndDate.Text = ""

            Me.LabelNoStartDate.Text = ""

        End If

    End Sub

Open in new window


Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
This video teaches viewers how to create their own website using cPanel and Wordpress. Tutorial walks users through how to set up their own domain name from tools like Domain Registrar, Hosting Account, and Wordpress. More specifically, the order in…
Use Wufoo, an online form creation tool, to make powerful forms. Learn how to selectively show certain fields based on user input using rules to gather relevant information and data from your forms. The rules feature provides you with an opportunity…

747 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now