Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Making CTOD() work in Europe
Message
From
17/11/2018 06:31:52
Lutz Scheffler
Lutz Scheffler Software Ingenieurbüro
Dresden, Germany
 
 
To
16/11/2018 15:34:27
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
01663465
Message ID:
01663485
Views:
53
>>Hi,
>>
>>As I go through my program, I see many places where I convert a string to date, using CTOD(), hard-coded with MM/DD/YYYY. But if the date is (for example), British ("DD/MM/YYYY") it won't work.
>>
>>How do you suggest I change all places that use CTOD() from hard-coded use of American date system to another?
>>
>>TIA
>
>If I had to do this task, I would write a program to scan through every PRG, VCX, SCX, FRX, wherever there was code, and identify all of the expressions with CTOD() and replace them with my_ctod(), and then add FUNCTION my_ctod to my utility.prg or main.prg, whatever is in the SET PROCEDURE TO path.
>
>The my_ctod() function would take the incoming form in the MM/DD/YYYY and you could translate it on-the-fly and return the value. Something like this (untested, off the top of my head):
>
>
* Note:  tcDate is MM/DD/YYYY
>FUNCTION my_ctod
>LPARAMETERS tcDate
>LOCAL lnMm, lnDd, lnYyyy
>
>    lnMm = INT(VAL(GETWORDNUM(tcDate, 1, "/")))
>    lnDd = INT(VAL(GETWORDNUM(tcDate, 2, "/")))
>    lnYyyy = INT(VAL(GETWORDNUM(tcDate, 3, "/")))
>
>    * Compute date in a standard form
>    RETURN DATE(lnYyyy + IIF(lnYyyy < 100, INT(YEAR(DATE()) / 1000) * 1000, 0), lnMm, lnDd)
>
>Something like that.

Good point, and now for the lazy ones

Create the function my_ctod as above

Now use your global include file and add
#DEFINE CTOD my_ctod
Precompiler replaces CTOD with my_ctod. Done. No replace anywhere else.

Lutz
Words are given to man to enable him to conceal his true feelings.
Charles Maurice de Talleyrand-Périgord

Weeks of programming can save you hours of planning.

Off

There is no place like [::1]
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform