Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 254
  • Last Modified:

Help with Timespan diff in vb.net

I'm trying to get the difference of 2 dates in min or seconds.  When I check the dates, they are both correct with the correct time.  When I try to get the difference of the 2, it's not correct.  Am I doing this wrong?

Dim strFileInfo As New System.IO.FileInfo("C:\testfile.txt")  'get file info
 
            Dim dateDiff As TimeSpan = DateTime.Now.Subtract(strFileInfo.LastWriteTime.Date)    
            MsgBox(strFileInfo.LastWriteTime.TimeOfDay.ToString & "    " & Date.Now.TimeOfDay.ToString & "   " & dateDiff.Seconds.ToString)
 
 
 
            If dateDiff.Seconds >= 120 Then 'if older than 2 min, dont use it.  info is not current
0
chadmanvb
Asked:
chadmanvb
  • 2
  • 2
2 Solutions
 
Miguel OzSoftware EngineerCommented:
I think what you need to use is the TotalSeconds property.
MsgBox(strFileInfo.LastWriteTime.TimeOfDay.ToString & "    " & Date.Now.TimeOfDay.ToString & "   " & dateDiff.TotalSeconds.ToString)

Open in new window

Note: Property Seconds returns only the Seconds component of the TimeSpan.
0
 
chadmanvbAuthor Commented:
I'm still not getting this to work.  Here is what I get when I do TotalSeconds.

21:04:49.0220256    21:10:13.5014703   76213.5004702

when I do seconds I get this.  This will always show me the seconds in the date.now.timeofday
21:04:49.0220256    21:10:55.2506448   55

I'm sure I'm missing something simple here.
0
 
käµfm³d 👽Commented:
OK, but you're subtracting two DateTimes, and displaying two TimeOfDays. These are different things. "08/23/2014 00:35:00" is a DateTime; "00:35:00" is a TimeOfDay.
0
 
Miguel OzSoftware EngineerCommented:
You are only comparing date component of LastWriteTime:
DateTime.Now.Subtract(strFileInfo.LastWriteTime.Date)  

Open in new window

 
the line above should be:
DateTime.Now.Subtract(strFileInfo.LastWriteTime) 

Open in new window



thus your code should look like:
Dim strFileInfo As New System.IO.FileInfo("C:\testfile.txt")  'get file info
Dim now As DateTime = DateTime.Now
Dim dateDiff As TimeSpan = now.Subtract(strFileInfo.LastWriteTime.Date)    
MsgBox(strFileInfo.LastWriteTime.ToString("f") & "    " & now.ToString("f") & "   " & dateDiff.TotalSeconds.ToString)

Open in new window


Note: If more help required please post the contents of message box.
0
 
chadmanvbAuthor Commented:
Thanks so much!  I knew it was something simple.
0

Featured Post

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!

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now