× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Hi Doug,

I'm not sure that I would attempt to do things the way you're doing them. Instead, I think I'd write a routine that looks for date separators (slashes or dashes) and uses that to determine the components of the date. Then I'd look for "which one is 4 digits" to determine the format. and if none are 4-digits, I'd assume MDY.

However, trying to do literally what you ask, I came up with the following POC:

D DATETEST PR ExtPgm('DATETEST')
D date 10a const
D DATETEST PI
D date 10a const

D BAD_DATE c d'0002-02-02'
D len s 10i 0
D Result s D inz(BAD_DATE)

/free

len = %len(%trimr(date));
if len=6;
test(de) *MDY0 date;
if not %error;
result = %date(date:*MDY0);
dsply 'valid MDY';
endif;
endif;

if len=8;
test(de) *ISO0 date;
if not %error;
result = %date(date:*ISO0);
dsply 'valid ISO';
endif;
test(de) *USA0 date;
if not %error;
result = %date(date:*USA0);
dsply 'valid USA';
endif;
endif;

if len=10;
test(de) *USA date;
if not %error;
result = %date(date:*USA);
dsply 'valid USA w/seps';
endif;
endif;

if result = BAD_DATE;
dsply ('result = Invalid Date');
else;
dsply ('result = ' + %char(result:*USA/));
endif;

*inlr = *on;
/end-free






Doug Palme wrote:
I need to allow the users to enter any of the following values as a valid date type on a display file:

010108 // Six digit date

20080101 // eight digit ISO date type

01012008 // eight digit USA date type

01/01/2008 // ten digit USA date type


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.