![]() |
PL/I 9's complement |
You can use a decimal calculator to convert from and to 9's complement dates:
9's comp | regular Dcl Y2K_BEG_9COMP_DATE Char(6) Value (498768); | 501231 Dcl Y2K_END_9COMP_DATE Char(6) Value (489898); | 510101 Dcl Y2K_20_CENT_END_9COMP_DATE Char(6) Value (008768); | 991231 Dcl Y2K_20_CENT_END_PLUS_1_9COMP Char(6) Value (008767); | 991232 Dcl Y2K_20_CENT_BEG_9COMP_DATE Char(6) Value (999898); | 000101 Dcl Y2K_20_CENT_BEG_MINUS_1_9COMP Char(6) Value (999899); | 000100
To convert a regular date to a 9's complement date:
DATE_9COMP = 999999 - DATE_REG.
To convert a 9's complement date to a regular date:
DATE_REG = 999999 - DATE_9COMP.
(Of course, the variables used in arithmetic must be numeric.)
The sum of a regular date and its 9's complement will always
equal all 9s.
(Thanks for Bob King for this code.)
©1997 IBM Corporation