Need a date range

C

Chad

Hi All,

I am trying to store todays date minus x amount of days. So I get todays
date with Date Function, format it to YYMMDD. Now my problem is, today is
the 12, so if I minus 2 weeks I get 80999, not 080929. So it drops my
leading zero and ignores the month

How do I maintain a date structure across month changes.

Thanks
Chad
 
D

Dave Peterson

Do your arithmetic against the real date--then format the result:

Dim myDate as date
mydate = date - 14
msgbox format(mydate, "yymmdd")
 
C

Chad

Thanks Dave, always fast on the replys.


startdate = "0" & enddate - 7 'startdate equals "080999"
x = Format(startdate, "YYMMDD")

x = 211006

Not sure what is happening, but it is wrong. I guess it is thinking my
startdate is a different format that YYMMDD

Chad
 
C

Chad

It's not nice, but I broke apart the date and rearranged the numbers so that
the format liked it.
It you know a better way, that would be better.

Chad

x = Right(enddate, 2) & "/" & Mid(enddate, 3, 2) & "/" & Left(enddate, 2)
x = Format(x, "YYMMDD")
 
D

Dave Peterson

I don't understand.

I still think you'd be better off just working with the dates--not the formatted
strings.

Is there a reason you can't work with the real date?
 
C

Chad

My computer's default date style is DD/MM/YYYY, but the text in the file I
am working with has strings like 081012a (date and a letter to signify
sample batch). So I don't think I can do what you say. Just because the
string is a string and not a date.
 
D

Dave Peterson

You could extract the date from that string:

dim myVal as string
dim myDate as date
myval = "081012a"
'does 081012 represent Oct 12, 2008?
mydate = dateserial(2000+left(myval,2),mid(myval,3,2),mid(myval,5,2))

'Then you can use:
mydate = mydate - 14

'And display it anyway you want:
msgbox format(mydate,"yymmdd")


My computer's default date style is DD/MM/YYYY, but the text in the file I
am working with has strings like 081012a (date and a letter to signify
sample batch). So I don't think I can do what you say. Just because the
string is a string and not a date.
 
Top