Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default Testing modification time of file

I want to test the modification time of a file to see whether it is more than
20 hours old. So far I have:

dim dteFileMod as Date
dim dteNow as Date
dim dteDiff as Date

'Get the date/time properties of the file
dteFileMod = FileDateTime(strFilename)
'Get date/time now
dteNow = Now
'As long as it is less than 20 hours old allow it to be used
dteDiff = dteFileMod - dteNow

I thought that a simple subtraction would work, but it hasnt. If I do a
debug print after it has run I get the following values:

dteDiff = 24/12/1899 22:25:06
dteFileMod = 14/09/2006 15:55:19
dteNow = 21/09/2006 14:20:25

Will someone please explain date/time subtraction in VB; or suggest an
easier way?
Thanks
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 644
Default Testing modification time of file

How about:
If (Now - 20) < FileDatetime(strFilename) Then
'Do Stuff
End If

Charles

Peter Clancy wrote:
I want to test the modification time of a file to see whether it is more than
20 hours old. So far I have:

dim dteFileMod as Date
dim dteNow as Date
dim dteDiff as Date

'Get the date/time properties of the file
dteFileMod = FileDateTime(strFilename)
'Get date/time now
dteNow = Now
'As long as it is less than 20 hours old allow it to be used
dteDiff = dteFileMod - dteNow

I thought that a simple subtraction would work, but it hasnt. If I do a
debug print after it has run I get the following values:

dteDiff = 24/12/1899 22:25:06
dteFileMod = 14/09/2006 15:55:19
dteNow = 21/09/2006 14:20:25

Will someone please explain date/time subtraction in VB; or suggest an
easier way?
Thanks


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 644
Default Testing modification time of file

Whoops, that's 20 days. use this instead:
How about:
If (Now - (20/24)) < FileDatetime(strFilename) Then
'Do Stuff
End If

Charles

P.S. In VBA 1 in a date format = 1 day, you want 20hrs or 20/24ths of a
day.

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 225
Default Testing modification time of file

You're on the right lines, but you shouldn't dim dteDiff
as a date - use

Dim dteDiff as Double ' (should change prefix too...)

and then:

dteDiff = dteNow - dteFileMod ' note change of order
' dteDiff contains days (and part) between the dates
if dteDiff * 24 20 then ' difference is more than 20 hours
' whatever you need to do
end if..

The dteDiff in your example is nearly 6 days before
00:00 on 1 Jan 1900, which is the basepoint for dates.

hth
Andrew


Peter Clancy wrote:
I want to test the modification time of a file to see whether it is more than
20 hours old. So far I have:

dim dteFileMod as Date
dim dteNow as Date
dim dteDiff as Date

'Get the date/time properties of the file
dteFileMod = FileDateTime(strFilename)
'Get date/time now
dteNow = Now
'As long as it is less than 20 hours old allow it to be used
dteDiff = dteFileMod - dteNow

I thought that a simple subtraction would work, but it hasnt. If I do a
debug print after it has run I get the following values:

dteDiff = 24/12/1899 22:25:06
dteFileMod = 14/09/2006 15:55:19
dteNow = 21/09/2006 14:20:25

Will someone please explain date/time subtraction in VB; or suggest an
easier way?
Thanks


  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 225
Default Testing modification time of file

You're on the right lines, but you shouldn't dim dteDiff
as a date - use

Dim dteDiff as Double ' (should change prefix too...)

and then:

dteDiff = dteNow - dteFileMod ' note change of order
' dteDiff contains days (and part) between the dates
if dteDiff * 24 20 then ' difference is more than 20 hours
' whatever you need to do
end if..

The dteDiff in your example is nearly 6 days before
00:00 on 1 Jan 1900, which is the basepoint for dates.

hth
Andrew


Peter Clancy wrote:
I want to test the modification time of a file to see whether it is more than
20 hours old. So far I have:

dim dteFileMod as Date
dim dteNow as Date
dim dteDiff as Date

'Get the date/time properties of the file
dteFileMod = FileDateTime(strFilename)
'Get date/time now
dteNow = Now
'As long as it is less than 20 hours old allow it to be used
dteDiff = dteFileMod - dteNow

I thought that a simple subtraction would work, but it hasnt. If I do a
debug print after it has run I get the following values:

dteDiff = 24/12/1899 22:25:06
dteFileMod = 14/09/2006 15:55:19
dteNow = 21/09/2006 14:20:25

Will someone please explain date/time subtraction in VB; or suggest an
easier way?
Thanks




  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default Testing modification time of file

What can I say? Genius, it works like a charm.
Thanks

"Die_Another_Day" wrote:

Whoops, that's 20 days. use this instead:
How about:
If (Now - (20/24)) < FileDatetime(strFilename) Then
'Do Stuff
End If

Charles

P.S. In VBA 1 in a date format = 1 day, you want 20hrs or 20/24ths of a
day.


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Modification Time Update Kanmi Excel Worksheet Functions 3 June 24th 09 06:48 PM
Modification of a .CSV file [email protected] Excel Discussion (Misc queries) 6 April 23rd 07 09:11 PM
Excel file modification date GROSNER Excel Discussion (Misc queries) 5 March 4th 05 01:19 AM
Testing Time /Date stamps of Files Tom Ogilvy Excel Programming 1 September 14th 03 07:49 PM
Testing Time /Date stamps of Files Tom Ogilvy Excel Programming 1 September 1st 03 05:38 PM


All times are GMT +1. The time now is 10:36 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"