Dec 102017
 
Db3 prg for date formating.
File FDATE.ZIP from The Programmer’s Corner in
Category Dbase Source Code
Db3 prg for date formating.
File Name File Size Zip Size Zip Type
DATENOTE.TXT 5442 1971 deflated
FDATE.PRG 1131 385 deflated

Download File FDATE.ZIP Here

Contents of the DATENOTE.TXT file



Date Formatting With dBASE III
------------------------------
by Chris White


There are often occasions when you may wish to display date
variables in formats other than those allowed by the SET DATE
command in version 1.1. (See the dBASE III version 1.1 manual
insert, "CORRECTIONS TO THE MANUAL AND PRODUCT CHANGE SUMMARY"
page 5 and 6, for the various date formats allowed.)

Specifically, you may wish to display the date in a format such
as January 25, 1984. This is useful for check printing, invoice
writing, report formats conforming to standards, or merely for
aesthetic reasons.

The most common method of converting a date variable to a
formatted string consists of using the SUBSTR, STR, and various
date functions in combination. As an example, let us convert the
system date by assigning it to a character string variable and
then displaying the variable with the @...SAY command. Assuming
the system date is 01/25/84, the desired output will look like
"January 25, 1984." The statement that makes the conversion is
as follows:

datestrg = CMONTH(DATE())+" "+STR(DAY(DATE()),2)+", "+;
STR(YEAR(DATE()),4)

To understand this expression, let us examine it in some detail.
The memory variable datestrg will contain the formatted date
string. The first portion of the expression,

CMONTH(DATE())

returns the month name as a character string, "January," in our
example. A blank character is concatenated onto the end of the
month name with +" ". The second portion of the expression,

STR(DAY(DATE()),2)

returns the numeric day of the month as a character string. A
comma and a blank are concatenated with +", ". We have so far
"January 25,". The last portion of the expression,

STR(YEAR(DATE()),4)

returns the year as a four-character string. The results of this
last expression are concatenated to the month and day. The
memory variable, datestrg, will at this point contain "January
25, 1984". Finally, to display the string to the screen or
printer execute the command:

@ 10,10 SAY datestrg

It is not necessary to assign the result of the expression to a
memory variable in order to display it. The @...SAY could well
look like:

@ 10,10 SAY CMONTH(DATE())+" "+STR(DAY(DATE()),2)+", "+;
STR(YEAR(DATE()),4)

Additionally, this date expression can be used as the field
contents in either the REPORT or LABEL FORM or any other display
command that accepts a character string expression. For other
formatting algorithms please refer to the example that follows.


>>> General Date Formats

For those who have been building a general purpose library of
useful routines, the following procedure may be a beneficial
addition.

This procedure can be used as a stand-alone command file or as a
procedure in a PROCEDURE file. It uses the PARAMETERS clause to
allow the routine to be general and useful for a variety of
different programs without change. For further discussion on the
use of the PARAMETERS clause, please refer to the dBASE III
manual page 4-76 for version 1.0 or page 4-83 for version 1.1.

The construction of the routine is quite simple. It takes two
inputs, a date variable to format and a numeric code designating
the format desired, and produces one output, a character variable
containing the formatted date string. The syntax to call the
routine is as follows:


STORE " " TO finv_date
----------------------
|__________________________ Receiving variable
must exist prior to call
DO fdate WITH inv_date,5,finv_date
----- ---- ------- - ---------
| | | | |_____ Character variable to
| | | | receive formatted date
| | | |
| | | |___________ Format code
| | |
| | ----------------- Date variable to format
| |
| ------------------------ Specifies PARAMETER list
|
----------------------------- Format routine name


The formats that are supported are as follows:

1. Mon DD, YYYY

2. Mon YYYY

3. Mon DD

4. Month DD, YYYY

5. DD-Mon-YYYY


>>> Program for General Date Formats

* Program..: Fdate.PRG
* Author...: Chris White
* Date.....: January 25, 1985
* Note(s)..: This program takes a date variable passed to it
* with the PARAMETERS phrase and returns the date
* as a formatted character string.
*
PARAMETERS date,code,datestrg
DO CASE
CASE code = 1
* ---"Jan 25, 1984"
datestrg = SUBSTR(CMONTH(date),1,3) + ' ' +;
STR(DAY(date),2) + ', ' + STR(YEAR(date),4)
CASE code = 2
* ---"Jan 1984"
datestrg = SUBSTR(CMONTH(date),1,3) + ' ' +;
STR(YEAR(date),4)
CASE code = 3
* ---"Jan 25"
datestrg = SUBSTR(CMONTH(date),1,3) + ' ' +;
STR(DAY(date),2)
CASE code = 4
* ---"January 25, 1984"
datestrg = CMONTH(date) + ' ' +;
STR(DAY(date),2) + ', ' + STR(YEAR(date),4)
CASE code = 5
* ---"25-Jan-84"
datestrg = STR(DAY(date),2) + '-' +;
SUBSTR(CMONTH(date),1,3) +;
'-' + SUBSTR(STR(YEAR(date),4),3,2)
OTHERWISE
datestrg = 'Error'
ENDCASE
RETURN
* EOF: Fdate.PRG


--End--


 December 10, 2017  Add comments

Leave a Reply