dcsimg
Results 1 to 12 of 12

Thread: How to calculate the time difference

  1. #1

    Thread Starter
    Hyperactive Member vbzero's Avatar
    Join Date
    Aug 2000
    Location
    Vienna
    Posts
    347

    Exclamation

    Does anybody know how to calculate the time difference between (for example: 01:00 PM and 02: AM)?
    I've set 2 variables:

    StartTimeValue = Format(MyStartTime, "hh")
    EndTimeValue = Format(MyEndTime, "hh")

    'StartTimeValue will return 13 when 01:00 PM is set.
    'EndTimeValue will return 02 when 02:00 AM is set.

    Now how can I get the time difference? Is this format
    I'm using ok, or should I use "hh:mm" for the return
    value?

    thx, sub-zero


    Visual Studio 6.0 Enterprise Edition

  2. #2
    Guest
    Try this.
    Code:
    'When bMethod = False, the operation is subtraction. 
    'When bMethod = True, the operation is addition 
    Function TimeDiff(dTime1 As Date, dTime2 As Date, bMethod As Boolean) As Date
        dtTime1 = Format("3:00:00 AM", "hh:mm:ss")
        dtTime2 = Format("1:00:00 AM", "hh:mm:ss")
        If bMethod = True Then TimeDiff = CDate(dTime1 + dTime2)
        If bMethod = False Then TimeDiff = CDate(dTime1 - dTime2)
    End Function
    Usage:
    Code:
    'Subtracts 2:00 from 3:00
    Print TimeDiff("3:00", "2:00", False)

  3. #3
    Guest
    This will return the amount of hours between the two time points.

    Code:
    StartTimeValue = Format("1:00:00 AM", "h:mm:ss AMPM")
    EndTimeValue = Format("2:00:00 AM", "h:mm:ss AMPM")
    RetVal = DateDiff("h", StartTimeValue, EndTimeValue)
    MsgBox RetVal

  4. #4

    Thread Starter
    Hyperactive Member vbzero's Avatar
    Join Date
    Aug 2000
    Location
    Vienna
    Posts
    347

    Exclamation

    I allready tried this in similary methods but the
    problem is - it seams that the application cannot
    detect the difference between AM and PM.

    When I use one of this functions, or any other
    it would return the following:

    Definitions:
    ------------
    StartTimeValue = Format(MyTime, "hh")
    EndTimeValue = Format(MyTime, "hh")

    'MyTime for StartTimeValue could be 01:00 PM and would
    return 13.
    'MyTime for EndTimeValue could be 02:00 AM and would
    return 02.

    When I try to get the difference, it returns a difference
    of 11 hours for 01:00 PM and 02:00 AM.
    That is correct when you say, you start at 02:00 AM and
    count the hours until 01:00 PM.

    What I want to do is to count the hours from 01:00 PM to
    02:00 AM next day. Then it would result a of 13 hours
    difference.

    Any other suggestions?

    thx, sub-zero

  5. #5

    Thread Starter
    Hyperactive Member vbzero's Avatar
    Join Date
    Aug 2000
    Location
    Vienna
    Posts
    347

    Exclamation

    Sorry, but it doesn't. When I try to get the difference
    between 01:00 PM (current day) and 02:00 AM (next day)
    with this code it returns 1.
    Then my brain says NO - there can't be 1 hour difference.
    That only would be the difference between 1 and 2.

    thx, sub-zero

  6. #6

    Thread Starter
    Hyperactive Member vbzero's Avatar
    Join Date
    Aug 2000
    Location
    Vienna
    Posts
    347

    Exclamation

    OK guys! - I just got it. Don't need that code.
    When I calculate 24 - StartTimeValue + EndTimeValue
    then it returns the difference.
    Sometimes it's as easy as you would think.

    thx, sub-zero

  7. #7
    New Member
    Join Date
    Dec 2013
    Posts
    2

    Re: How to calculate the time difference

    Quote Originally Posted by vbzero View Post
    OK guys! - I just got it. Don't need that code.
    When I calculate 24 - StartTimeValue + EndTimeValue
    then it returns the difference.
    Sometimes it's as easy as you would think.

    thx, sub-zero
    I'm not sure that your previous code will work quit well

    but try this :
    ============
    'Here you go :

    Dim ADate, A1Date, BDay, B1Day, CMonth, C1Month, DYear, D1Year
    ADate = Date

    'If you want to calculate time diff in the same day, just delete the "+ 1"
    A1Date = ADate + 1

    BDay = Day(ADate)
    B1Day = Day(A1Date)
    CMonth = Month(ADate)
    C1Month = Month(A1Date)
    DYear = Year(ADate)
    D1Year = Year(A1Date)

    Dim MystrtTime, MyendTime, strtDATEnTIME, endDATEnTIME, RetVal, GetMinDiff, GetHours, GetMinutes, FinalDiff

    MystrtTime = Format("06:10:00 PM", "hh:mm:ss AM/PM")
    MyendTime = Format("06:50:00 AM", "hh:mm:ss AM/PM")

    endDATEnTIME = Format(B1Day & "-" & C1Month & "-" & D1Year & " " & MyendTime, "dd-mm-yyyy hh:mm:ss")
    strtDATEnTIME = Format(BDay & "-" & CMonth & "-" & DYear & " " & MystrtTime, "dd-mm-yyyy hh:mm:ss")

    ' Get Hours
    GetHours = Int(((DateDiff("s", strtDATEnTIME, endDATEnTIME) / 60) / 60))

    'Get Minutes
    GetMinDiff = Int(((((DateDiff("s", strtDATEnTIME, endDATEnTIME) / 60) / 60)) - Int(((DateDiff("s", strtDATEnTIME, endDATEnTIME) / 60) / 60))) * 60)


    If GetMinDiff >= 60 Then
    GetMinutes = GetMinDiff - 60
    GetHours = GetHours + 1
    Else
    GetMinutes = GetMinDiff
    End If

    FinalDiff = GetHours & ":" & GetMinutes

    RetVal = Format(FinalDiff, "hh:mm:ss")

    MsgBox RetVal

    ' Done

    BR,
    Mous

  8. #8
    PowerPoster jcis's Avatar
    Join Date
    Jan 2003
    Location
    Argentina
    Posts
    4,423

    Re: How to calculate the time difference

    Welcome to the forums Mous

    I don't think he still needs help with this (14 years later). See the main page of this Forum, there you'll find many active threads.

  9. #9
    PowerPoster SamOscarBrown's Avatar
    Join Date
    Aug 2012
    Location
    NC, USA
    Posts
    7,193

    Re: How to calculate the time difference

    AND, you have some issues with the way you are declaring variables.....:-)

  10. #10
    New Member
    Join Date
    Dec 2013
    Posts
    2

    Re: How to calculate the time difference

    Thanks for your replies
    I know its too old , but almost every one use your forum as a reference so I wanted to complete the thread.

    dear sam ,
    would you please fix my code issues , so I could learn from you , and other Google searchers will find a good complete article

    Thank you again.

  11. #11
    PowerPoster SamOscarBrown's Avatar
    Join Date
    Aug 2012
    Location
    NC, USA
    Posts
    7,193

    Re: How to calculate the time difference

    Well, I won't go through all that code, but I would suggest you read this about declaring variables:
    (In Visual Basic 6.0, you can declare variables of different types in the same statement, but you must specify the data type of each variable or it defaults to Variant.)

    http://msdn.microsoft.com/en-us/libr...(v=vs.90).aspx

  12. #12
    Super Moderator Joacim Andersson's Avatar
    Join Date
    Jan 1999
    Location
    Sweden
    Posts
    14,649

    Re: How to calculate the time difference

    We have a policy not to resurrect threads that are older than one year. Thread closed.
    Joacim Andersson
    If anyone's answer has helped you, please show your appreciation by rating that answer.
    I'd rather run ScriptBrix...
    Joacim's view on stuff.

    MVP

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Featured


Click Here to Expand Forum to Full Width