home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.visual.basic      MS Visual Basic discussions, NOT dot-net      10,840 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 10,112 of 10,840   
   Rick Rothstein to All   
   Re: VB6 - hours between dates/times   
   16 Jun 06 11:40:42   
   
   From: rickNOSPAMnews@NOSPAMcomcast.net   
      
   > Each entry in a data file includes date and time in text format - e.g.   
   > "0601271325" = 2006, January 27th, 1:25 pm.  Is there a simple way to   
   > calculate the hours (including decimal parts) between two of these   
   > entries?   
      
   You could use the following function to convert your "dates" from their   
   non-standard format to a normal date format...   
      
   Function ConvertDate(DateIn As String) As Date   
     ConvertDate = DateSerial(Left$(DateIn, 2), Mid$(DateIn, 3, 2), _   
                              Mid$(DateIn, 5, 2)) + CDate(Mid$( _   
                              DateIn, 7, 2) & ":" & Right$(DateIn, 2))   
   End Function   
      
   and then use the DateDiff function on the results. Something like this for   
   example...   
      
   NumberOfSeconds = DateDiff("s", ConvertDate(D1), ConvertDate(D2)   
      
   Note that this returns the number of seconds between the two dates. To get   
   hours and decimals of an hour, you would need to divide the number of   
   seconds by 3600 (the number of seconds in an hour)....   
      
   NumberOfHours = NumberOfSeconds / 3600   
      
   One additional note about your strange date format... there is a possibility   
   that the 2-digit year format could be interpreted differently on different   
   systems. The "breakpoint" between when a 2-digit year is considered in the   
   2000 century and when it is considered in the 1900 century is user   
   configurable and out of your control. If you know all of your dates are   
   going to be in the 2000 century, you could append "20" onto the beginning of   
   the Left$(DateIn,2) term in the DateSerial function to force that   
   interpretation; otherwise, you results might be at the hands of the local   
   setting on the computer your program is running on (depending on the span of   
   years your program must be able to handle).   
      
   Rick   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca