You are here:

FoxPro/validating dates

Advertisement


Question
Good day sir! This is AJ again.
Using VFP 9.0, in my form, I have duration textboxes.
The first textbox is for "Duration From:", and the second one is for "Duration To:". The dates From and To should range by a year, for example: 10/30/2012 - 10/30/2013; 09/01/2012 - 09/01/2013.
If a user entered for example: 10/30/2012 - 11/30/2012, I want to display messagebox for invalid dates.
How will I validate the dates? Can you give some simple codes for this. Thank you!

Answer
Hi AJ, welcome back...

The easiest way to insure the date range is always exactly one year is to
have the From date entered, then calculate the To date in your form.  The
user should not have to enter two dates, if the computer can calculate one
of them.

In the valid method of your From date:

  ToDate = gomonth(FromDate,12)
  thisform.refresh

1.  The above is based on your two textboxes having the variables "FromDate"
   and "ToDate" as their ControlSource

2.  In this case, the GOMONTH function creates a date 12 months from the FromDate

3.  You should also make your FromDate ENABLED = .F. to show the calculated date, but
   not allow the user to change it.

NOTE:  If you actually want it to be a year, it should be GOMONTH(FromDate,12) - 1
      The -1 subtracts a single day.  For example, this would give you a range of
      1/1/2011 - 12/31/2011 instead of 1/1/2011 - 1/1/2012.

If you really want your user to enter both dates, use the Valid method of the ToDate
to confirm that the ToDate is equal to GOMONTH(FromDate,12)-1 - if it is NOT equal,
return .f. or 0...

  if ToDate <> GOMONTH(FromDate,12)-1
     Return .F.      
  endif
  Return .T.

FoxPro

All Answers


Answers by Expert:


Ask Experts

Volunteer


Fred Frase

Expertise

Questions about development only. No installation or hardware specific questions, please. Your first step in requesting assistance should be to identify the version of FoxPro you are using. I can write short functions but, PLEASE do not ask me to write programs for you.

Experience

Nearly 30 years professional programming experience using FoxPro (FoxBase through VFP 9) or other xbase language, primarily in Windows environments.

Education/Credentials
Completed a 1,000 hour diploma course in programming at International Academy of Ohio (subsequently merged with Southern Ohio College).

©2016 About.com. All rights reserved.