Please enable JavaScript to view this site.

A-Shell Reference

Navigation: » No topics above this level «

INFLD Date Time Codes

Scroll Prev Top Next More

 

 

Date Input

[ Type code = D ] Format will be determined by the combination of xmax, the u and U codes, and the language definition file. The possibilities are: xmax=6 (MMDDYY or DDMMYY); xmax=8 (MMDDYYYY or DDMMYYYY). INFLD forces the entry to be a valid date. See the > code (for swapping the year up front), U (European format), u (force language definition file format) and setdef parameter description (for date range checking). See the GUI-Related Codes topic for information on using a Windows-style date picker control.

 

Date Input, Today

[ Type code = d ] If neither D, U, nor u code used, assumes MMDDYY format, otherwise uses format as specified by D or U codes. See > code and setdef topic. Note that the pre-load feature only works if the entry field is empty.

 

European Date

[ Type code = U ] Like D but forces European format (DD digits in front of the MM digits).

See Also

type > (Convert date format)
setdef parameter description

 

Convert Date Format

[ Type code = > ] Converts from YYMMDD format (for internal storage) to either MMDDYY or DDMMYY (depending on use of D, U or u codes) for display and input. Note that this conversion will take place on both input and output, so if you want to preload a date field (see opcode parameter), it should be supplied in YYMMDD format, and INFLD will also return the date in that format (no matter what the input/display format was.)

 

Allow Date Shortcuts

The combination |d (vertical bar, lower case d) causes INFLD to allow the use of date shortcuts even if the xmin value has not yet been satisfied. Otherwise, you must first enter the number of digits required by xmin before any shortcuts can be used. To review, date shortcuts allow you to enter between 1 and 4 digits and when you hit Return, INFLD fills in the remaining ones based on guessing. For one or two digits, it assumes they are the day of the current month. For three or four, it assumes they are the month and day (or day and month for European format).

 

HexaDecade Dates (1)

When the combination |H (vertical bar, H) is used in conjunction with any Date code, causes the editing format to be automatically expanded from 6 digits to 8 digits (to accommodate the century.) However, on return (and on pre-load) the field is converted to/from 6 digit "HexaDecade" format. In "HexaDecade" format, years past 99 are encoded using one hex digit followed by one decimal digit. For example, year 100 (e.g. 2000) would be "A0", year 105 (e.g. 2005) would be "A5", year 111 (e.g. 2011) would be "B1", etc. The advantage of this system is that it eliminates the need to expand existing date fields from 6 to 8 bytes, yet preserves sort order. It does, however, require that you deal with converting from "HexaDecade" format to "normal" format for printing and other display purposes. Fortunately, this would typically be a matter of cosmetics rather than processing accuracy, although you may need to also watch out for any mathematical operations on dates.

Note: Setting OPTIONS=HEXDEC may take care of most or all of the display, printing, and math issues as well.

HexaDecade Dates (2)

Using |h has the same effect as |H but does not expand the field to 8 digits for editing. Instead, it "guesses" at the century. If no other hints given, it will guess 20xx for xx < 60 and 19xx for xx > 60. If you specify |D it always assumes 19xx.

You may use SBR=CCYY:## to change the YY cutoff for assuming 19xx vs. 20xx to ## (instead of 60.)

 

Julian Date Format

[ Type code = j ] Convert dates to Julian format (for internal storage). May be used in combination with the D, d, or u codes, although if used by itself it will be treated as the combination Dj. Note that the parameter must be a string of at least 6 bytes which will hold the string representation of the Julian date value; it may then be assigned to a 2 or 3 byte binary number for more compact storage if desired.

 

Time Field

[ Type code = t ] (HH:MM:SS {A/PM}). INFLD supplies the separator characters (: for the USA Language Definition File) as needed to simplify data entry, and forces a legal time format within the limits imposed by the xmin and xmax parameters. See GUI-Related Codes for information on using a Windows-style time-picker control.

In text mode, field is accepted without editing or formatting, but INFLD will require that the field be in legal time format before exiting.

In GUI mode (|G but not |g), the field becomes a time picker control. Field is returned in military (24 hour) format, unless type ||t specified. xmax will determine whether the returned format is HH:MM {A/PM} or HH:MM:SS {A/PM}.