Skip to main content

I originally posted this in August of 2022. I'm reposting because 1) it's getting closer to 2030, and 2) I've had a few support cases asking about this issue.

Everyone out there know about D3's SET-DATE-WINDOW utility? It's something you can add to your cold start procedure to change the 2-digit year pivot point from 30 to something else. Example if you ICONV a date like 8/1/31, you'll get an internal date in the year 1931, not 2031 as you might expect. I have this in my USER-COLDSTART:

SET-DATE-WINDOW 60

This tells my D3 system to assume that any two-digit years from 00 to 59 are 2000 to 2059, where 60 to 99 are 1960 to 1999. This is a LOT handier than handling it in your application.

I'm posting this because there's a lot of useful stuff in D3 that I was unaware of until I became a Rocket employee and was actually forced to read the manual. Maybe some of you are in the same boat.

https://docs.rocketsoftware.com/bundle/d3_rg_1034/page/d3/d3_all/source/reference_manual/introduction/D3_Reference_Manual_overview.html

https://docs.rocketsoftware.com/bundle?cluster=true&labelkey=d3_dbms&labelkey=d3_dbms_10.4&labelkey=d3_dbms_10.3.4&rpp=10&sort.field=last_uploaded&sort.value=desc

Okay, so what happens in 40 years when we want the pivot point to be between 19XX and 20XX? In a later version of D3 10.4, there will be a (C option added to SET-DATE-WINDOW. Syntax is either SET-DATE-WINDOW 20 (C if you want the pivot point to be between 20XX and 21XX, and SET-DATE-WINDOW 19 (C    to reset it to the current 19XX/20XX pivot. Note that 19 and 20 are the only two valid arguments when using the (C option. In a hundred years or so, some D3 Engineer can add 21 to pivot between 21XX and 22XX, but I'm going to guess that will affect none of us current D3 folks!



------------------------------
Brian S. Cram
Principal Technical Support Engineer
Rocket Software
------------------------------

I originally posted this in August of 2022. I'm reposting because 1) it's getting closer to 2030, and 2) I've had a few support cases asking about this issue.

Everyone out there know about D3's SET-DATE-WINDOW utility? It's something you can add to your cold start procedure to change the 2-digit year pivot point from 30 to something else. Example if you ICONV a date like 8/1/31, you'll get an internal date in the year 1931, not 2031 as you might expect. I have this in my USER-COLDSTART:

SET-DATE-WINDOW 60

This tells my D3 system to assume that any two-digit years from 00 to 59 are 2000 to 2059, where 60 to 99 are 1960 to 1999. This is a LOT handier than handling it in your application.

I'm posting this because there's a lot of useful stuff in D3 that I was unaware of until I became a Rocket employee and was actually forced to read the manual. Maybe some of you are in the same boat.

https://docs.rocketsoftware.com/bundle/d3_rg_1034/page/d3/d3_all/source/reference_manual/introduction/D3_Reference_Manual_overview.html

https://docs.rocketsoftware.com/bundle?cluster=true&labelkey=d3_dbms&labelkey=d3_dbms_10.4&labelkey=d3_dbms_10.3.4&rpp=10&sort.field=last_uploaded&sort.value=desc

Okay, so what happens in 40 years when we want the pivot point to be between 19XX and 20XX? In a later version of D3 10.4, there will be a (C option added to SET-DATE-WINDOW. Syntax is either SET-DATE-WINDOW 20 (C if you want the pivot point to be between 20XX and 21XX, and SET-DATE-WINDOW 19 (C    to reset it to the current 19XX/20XX pivot. Note that 19 and 20 are the only two valid arguments when using the (C option. In a hundred years or so, some D3 Engineer can add 21 to pivot between 21XX and 22XX, but I'm going to guess that will affect none of us current D3 folks!



------------------------------
Brian S. Cram
Principal Technical Support Engineer
Rocket Software
------------------------------

Thanks for that. Very useful to know.



------------------------------
Bryan Buchanan
------------------------------

I originally posted this in August of 2022. I'm reposting because 1) it's getting closer to 2030, and 2) I've had a few support cases asking about this issue.

Everyone out there know about D3's SET-DATE-WINDOW utility? It's something you can add to your cold start procedure to change the 2-digit year pivot point from 30 to something else. Example if you ICONV a date like 8/1/31, you'll get an internal date in the year 1931, not 2031 as you might expect. I have this in my USER-COLDSTART:

SET-DATE-WINDOW 60

This tells my D3 system to assume that any two-digit years from 00 to 59 are 2000 to 2059, where 60 to 99 are 1960 to 1999. This is a LOT handier than handling it in your application.

I'm posting this because there's a lot of useful stuff in D3 that I was unaware of until I became a Rocket employee and was actually forced to read the manual. Maybe some of you are in the same boat.

https://docs.rocketsoftware.com/bundle/d3_rg_1034/page/d3/d3_all/source/reference_manual/introduction/D3_Reference_Manual_overview.html

https://docs.rocketsoftware.com/bundle?cluster=true&labelkey=d3_dbms&labelkey=d3_dbms_10.4&labelkey=d3_dbms_10.3.4&rpp=10&sort.field=last_uploaded&sort.value=desc

Okay, so what happens in 40 years when we want the pivot point to be between 19XX and 20XX? In a later version of D3 10.4, there will be a (C option added to SET-DATE-WINDOW. Syntax is either SET-DATE-WINDOW 20 (C if you want the pivot point to be between 20XX and 21XX, and SET-DATE-WINDOW 19 (C    to reset it to the current 19XX/20XX pivot. Note that 19 and 20 are the only two valid arguments when using the (C option. In a hundred years or so, some D3 Engineer can add 21 to pivot between 21XX and 22XX, but I'm going to guess that will affect none of us current D3 folks!



------------------------------
Brian S. Cram
Principal Technical Support Engineer
Rocket Software
------------------------------

Brian,

   Is there an equivalent command for Universe 11.3.5 on AIX 7.3 as SET.DATE.WINDOW does not exist on UV 11.3.5 (see bottom of paragraph). I ran into this when entering simple four digit MMYY expiration dates for credit cards. When entering dates 0130 and beyond, UV assumes such dates are way back in the rear view mirror. See below.

>ED MAPM.BP DATE.CHECK
8 lines long.

----: P
0001:       PROMPT "" ; @STDFIL="" ; TODAY=DATE()
0002:       CRT "ENTER EXPIRATION DATE AS MMYY : ": ; INPUT EXP
0003:       OEXP=EXP[1,2]:"/01/":EXP[3,2]
0004:       IEXP=ICONV(OEXP,"D")
0005:       IF IEXP LT TODAY THEN
0006:          CRT OCONV(IEXP,"D4/"):" IS LESS THAN SYSTEM DATE OF ":OCONV(TOD AY,"D4/")
0007:          ABORT
0008:       END
Bottom at line 8.
----: EX
>RUN MAPM.BP DATE.CHECK (E
ENTER EXPIRATION DATE AS MMYY : 0130
01/01/1930 IS LESS THAN SYSTEM DATE OF 03/19/2025
Program "DATE.CHECK": Line 7, Abort.
>

SORT VOC LIKE "...DATE..." 09:20:05am  19 Mar 2025  PAGE    1
NAME..........    TYPE    DESC..........................

CURRENT_DATE      K       Keyword  - for SQL-92
DATE              K       Keyword & Verb - SQL CAST
                          operator
DATE.FORMAT       V       Verb - Set default DATE
                          display format to
                          international format
DATE.VERB         V       Verb - Display the system DATE
HS.UPDATE.FILE    V       Verb - Update the UniVerse
INFO                      ODBC file information cache in
                          this account
UPDATE            V       Verb - SQL UPDATE statement
UPDATE.ACCOUNT    V       Verb - Update VOC entries to
                          current NEWACC revision level
UPDATE.CER        V       Verb - Update self signed
                          certificate
UPDATE.INDEX      V       Verb - Update a disabled
                          secondary index file

9 records listed.
>



------------------------------
Anthony Sperrazza
Senior Director of I.T.
Telebrands Corp
Fairfield NJ US
------------------------------

Brian,

   Is there an equivalent command for Universe 11.3.5 on AIX 7.3 as SET.DATE.WINDOW does not exist on UV 11.3.5 (see bottom of paragraph). I ran into this when entering simple four digit MMYY expiration dates for credit cards. When entering dates 0130 and beyond, UV assumes such dates are way back in the rear view mirror. See below.

>ED MAPM.BP DATE.CHECK
8 lines long.

----: P
0001:       PROMPT "" ; @STDFIL="" ; TODAY=DATE()
0002:       CRT "ENTER EXPIRATION DATE AS MMYY : ": ; INPUT EXP
0003:       OEXP=EXP[1,2]:"/01/":EXP[3,2]
0004:       IEXP=ICONV(OEXP,"D")
0005:       IF IEXP LT TODAY THEN
0006:          CRT OCONV(IEXP,"D4/"):" IS LESS THAN SYSTEM DATE OF ":OCONV(TOD AY,"D4/")
0007:          ABORT
0008:       END
Bottom at line 8.
----: EX
>RUN MAPM.BP DATE.CHECK (E
ENTER EXPIRATION DATE AS MMYY : 0130
01/01/1930 IS LESS THAN SYSTEM DATE OF 03/19/2025
Program "DATE.CHECK": Line 7, Abort.
>

SORT VOC LIKE "...DATE..." 09:20:05am  19 Mar 2025  PAGE    1
NAME..........    TYPE    DESC..........................

CURRENT_DATE      K       Keyword  - for SQL-92
DATE              K       Keyword & Verb - SQL CAST
                          operator
DATE.FORMAT       V       Verb - Set default DATE
                          display format to
                          international format
DATE.VERB         V       Verb - Display the system DATE
HS.UPDATE.FILE    V       Verb - Update the UniVerse
INFO                      ODBC file information cache in
                          this account
UPDATE            V       Verb - SQL UPDATE statement
UPDATE.ACCOUNT    V       Verb - Update VOC entries to
                          current NEWACC revision level
UPDATE.CER        V       Verb - Update self signed
                          certificate
UPDATE.INDEX      V       Verb - Update a disabled
                          secondary index file

9 records listed.
>



------------------------------
Anthony Sperrazza
Senior Director of I.T.
Telebrands Corp
Fairfield NJ US
------------------------------

Just got this information from Bruce Holt:

CENTURY.PIVOT XX where XX is the two-digit year. There's also a global "tunable" parameter called CENTURYPIVOT.

You can also use a 4-digit year that I believe will adjust the range to something other than 1900-2000. CENTURY.PIVOT 2030 will set the range from 2030-2129.

------------------------------
Brian S. Cram
Principal Technical Support Engineer
Rocket Software
------------------------------


Just got this information from Bruce Holt:

CENTURY.PIVOT XX where XX is the two-digit year. There's also a global "tunable" parameter called CENTURYPIVOT.

You can also use a 4-digit year that I believe will adjust the range to something other than 1900-2000. CENTURY.PIVOT 2030 will set the range from 2030-2129.

------------------------------
Brian S. Cram
Principal Technical Support Engineer
Rocket Software
------------------------------

Brian,

Thanks for the tip. I looked around for the string CENTURY in all my UV
documentation as well as my uvconfig file in my uv home directory.

Looks like the *CENTURYPIVOT* value is set to *1930*. Next chance I
get, I was thinking of changing it to 1970, running uvregen and rebooting
UV.

*Extract from uvconfig file*
*==========================*









*# CENTURYPIVOT - This sets the Century Pivot Year.# This value
determines how 1 and 2 digit years are# interpreted by ICONV. A value of
1930 means that# 30 through 99 are interpreted as the 1900s, and 00#
through 29 mean 2000 - 2029. If this value is two# digits, then the
Century Pivot Year is based on the# current year, as follows. A value of
30 means the# Century Pivot Year will be 1930 in 2000, 1931 in# 2001,
1932 in 2002, etc.CENTURYPIVOT 1930*




Anthony Sperrazza

Senior Director of I.T.

Information Technology | Bulbhead
9732440300 x353
tony@bulbhead.com
www.bulbhead.com
One Bulbhead Plaza, 79 Two Bridges Road, Fairfield, NJ 07004
Make work your leisure, and you will never work a day in your life


On Wed, Mar 19, 2025 at 10:38 AM Brian Cram via Rocket Software Forum <
Mail@forum.rocketsoftware.com> wrote:

> Just got this information from Bruce Holt: CENTURY.PIVOT XX where XX is
> the two-digit year. There's also a global "tunable" parameter called...
> Invite colleagues to join Rocket Forum and expand our expert network!
> ------------------------------
> [image: Rocket Forum]
> D3 and mvBase
>
> Post New Message Online
> Post
> New Message
> Invite your colleagues to join the Rocket Forum and grow our expert
> network. Share this link.
> Re: SET-DATE-WINDOW to adjust the pivot point for a 2-digit year
>
> Reply to Group Online
> Reply
> to Group
> Reply
> to Sender
> Reply
> to Sender via Email
>
> [image: Brian Cram]
>
> Mar 19, 2025 10:36 AM
> Brian Cram
>
>
> Just got this information from Bruce Holt:
>
> CENTURY.PIVOT XX where XX is the two-digit year. There's also a global
> "tunable" parameter called CENTURYPIVOT.
>
> You can also use a 4-digit year that I believe will adjust the range to
> something other than 1900-2000, but I'm still checking. This has to be
> documented somewhere. I'm a D3 guy so I don't know where to look.
>
>
> ------------------------------
> Brian S. Cram
> Principal Technical Support Engineer
> Rocket Software
> ------------------------------
> *Reply to Group Online
> *
> *Reply to Group via Email
> *
> *Reply to Sender Online
> *
> *View Thread
> *
> *Forward
> *
> *Flag as Inappropriate
> *
> *Post New Message Online
> *
> *Post New Message via Email *
>
>

Brian,

   Is there an equivalent command for Universe 11.3.5 on AIX 7.3 as SET.DATE.WINDOW does not exist on UV 11.3.5 (see bottom of paragraph). I ran into this when entering simple four digit MMYY expiration dates for credit cards. When entering dates 0130 and beyond, UV assumes such dates are way back in the rear view mirror. See below.

>ED MAPM.BP DATE.CHECK
8 lines long.

----: P
0001:       PROMPT "" ; @STDFIL="" ; TODAY=DATE()
0002:       CRT "ENTER EXPIRATION DATE AS MMYY : ": ; INPUT EXP
0003:       OEXP=EXP[1,2]:"/01/":EXP[3,2]
0004:       IEXP=ICONV(OEXP,"D")
0005:       IF IEXP LT TODAY THEN
0006:          CRT OCONV(IEXP,"D4/"):" IS LESS THAN SYSTEM DATE OF ":OCONV(TOD AY,"D4/")
0007:          ABORT
0008:       END
Bottom at line 8.
----: EX
>RUN MAPM.BP DATE.CHECK (E
ENTER EXPIRATION DATE AS MMYY : 0130
01/01/1930 IS LESS THAN SYSTEM DATE OF 03/19/2025
Program "DATE.CHECK": Line 7, Abort.
>

SORT VOC LIKE "...DATE..." 09:20:05am  19 Mar 2025  PAGE    1
NAME..........    TYPE    DESC..........................

CURRENT_DATE      K       Keyword  - for SQL-92
DATE              K       Keyword & Verb - SQL CAST
                          operator
DATE.FORMAT       V       Verb - Set default DATE
                          display format to
                          international format
DATE.VERB         V       Verb - Display the system DATE
HS.UPDATE.FILE    V       Verb - Update the UniVerse
INFO                      ODBC file information cache in
                          this account
UPDATE            V       Verb - SQL UPDATE statement
UPDATE.ACCOUNT    V       Verb - Update VOC entries to
                          current NEWACC revision level
UPDATE.CER        V       Verb - Update self signed
                          certificate
UPDATE.INDEX      V       Verb - Update a disabled
                          secondary index file

9 records listed.
>



------------------------------
Anthony Sperrazza
Senior Director of I.T.
Telebrands Corp
Fairfield NJ US
------------------------------

Anthony,

Here's the manual's description for using CENTURY.PIVOT:

Use CENTURY.PIVOT to override the system-wide century pivot year defined in the uvconfig file.

Syntax
CENTURY.PIVOT [year | nn]

where

year is a four-digit year. The first two digits specify the century and the last two specify the pivot year
nn is a two-digit code indicating a sliding pivot year. nn can be 00 through 99.


Static century pivot year
If you specify the century pivot year with four digits, the first two digits specify the century, and the last
two digits specify the pivot year.


For example, if you specify year as 1940, two-digit years specified in the range of 40 through 99 stand
for 1940 though 1999, and two-digit years specified in the range of 00 through 29 stand for 2000
through 2039. These ranges remain fixed until you explicitly change them.


Sliding century pivot year
If you enter the century pivot year as a two-digit code (nn), the century pivot year changes relative to
the current year. The formula for determining the century pivot year is as follows:


current.year - (100 - nn)


For example, if the current year is 2000 and nn is 05, the century pivot year is 1905. This means that
two-digit years specified in the range of 05 through 99 stand for 1905 through 1999, and two-digit
years specified in the range of 00 through 04 stand for 2000 through 2004.


If the current year is 2005 and nn is 05, the century pivot year is 1910. Two-digit years specified in the
range of 10 through 99 stand for 1910 through 1999, and two-digit years specified in the range of 00
through 09 stand for 2000 through 2009.


If the current year is 2001 and nn is 30, the century pivot year is 1931. Two-digit years specified in the
range of 31 through 99 stand for 1931 through 1999, and two-digit years specified in the range of 00
through 30 stand for 2000 through 2030.

I hope this helps!



------------------------------
Bruce Holt
Senior Technical Support Engineer
Rocket Software Inc
CO US
------------------------------

Anthony,

Here's the manual's description for using CENTURY.PIVOT:

Use CENTURY.PIVOT to override the system-wide century pivot year defined in the uvconfig file.

Syntax
CENTURY.PIVOT [year | nn]

where

year is a four-digit year. The first two digits specify the century and the last two specify the pivot year
nn is a two-digit code indicating a sliding pivot year. nn can be 00 through 99.


Static century pivot year
If you specify the century pivot year with four digits, the first two digits specify the century, and the last
two digits specify the pivot year.


For example, if you specify year as 1940, two-digit years specified in the range of 40 through 99 stand
for 1940 though 1999, and two-digit years specified in the range of 00 through 29 stand for 2000
through 2039. These ranges remain fixed until you explicitly change them.


Sliding century pivot year
If you enter the century pivot year as a two-digit code (nn), the century pivot year changes relative to
the current year. The formula for determining the century pivot year is as follows:


current.year - (100 - nn)


For example, if the current year is 2000 and nn is 05, the century pivot year is 1905. This means that
two-digit years specified in the range of 05 through 99 stand for 1905 through 1999, and two-digit
years specified in the range of 00 through 04 stand for 2000 through 2004.


If the current year is 2005 and nn is 05, the century pivot year is 1910. Two-digit years specified in the
range of 10 through 99 stand for 1910 through 1999, and two-digit years specified in the range of 00
through 09 stand for 2000 through 2009.


If the current year is 2001 and nn is 30, the century pivot year is 1931. Two-digit years specified in the
range of 31 through 99 stand for 1931 through 1999, and two-digit years specified in the range of 00
through 30 stand for 2000 through 2030.

I hope this helps!



------------------------------
Bruce Holt
Senior Technical Support Engineer
Rocket Software Inc
CO US
------------------------------
Bruce,

With that said, if I wanted to do a 'sliding' Century.Pivot that
accommodated 75 years back and 25 years ahead, I should go with the two
digs of '25'.

Based on what you explained, this year is 2025 less (100 - 25) would
equate to 1950 as the 'pivot' year.

In 2030, it would equate the pivot year would equate to 2030 less (100
-25) or 1955 as the 'pivot year' and so on and so on.

In my setup, UV 11.3.5 on AIX 7.3, is a two digit CENTURYPIVOT value of
25 permissible in my uvconfig file ? Current uvconfig extract is shown
below with four digits, 1930 .

*Extract from uvconfig file*
*==========================*









*# CENTURYPIVOT - This sets the Century Pivot Year.# This value
determines how 1 and 2 digit years are# interpreted by ICONV. A value of
1930 means that# 30 through 99 are interpreted as the 1900s, and 00#
through 29 mean 2000 - 2029. If this value is two# digits, then the
Century Pivot Year is based on the# current year, as follows. A value of
30 means the# Century Pivot Year will be 1930 in 2000, 1931 in# 2001,
1932 in 2002, etc.CENTURYPIVOT 1930*




Anthony Sperrazza

Senior Director of I.T.

Information Technology | Bulbhead
9732440300 x353
tony@bulbhead.com
www.bulbhead.com
One Bulbhead Plaza, 79 Two Bridges Road, Fairfield, NJ 07004
Make work your leisure, and you will never work a day in your life


On Wed, Mar 19, 2025 at 11:25 AM Bruce Holt via Rocket Software Forum <
Mail@forum.rocketsoftware.com> wrote:

> Anthony, Here's the manual's description for using CENTURY.PIVOT: Use
> CENTURY.PIVOT to override the system-wide century pivot year defined...
> Invite colleagues to join Rocket Forum and expand our expert network!
> ------------------------------
> [image: Rocket Forum]
> D3 and mvBase
>
> Post New Message Online
> Post
> New Message
> Invite your colleagues to join the Rocket Forum and grow our expert
> network. Share this link.
> Re: SET-DATE-WINDOW to adjust the pivot point for a 2-digit year
>
> Reply to Group Online
> Reply
> to Group
> Reply
> to Sender
> Reply
> to Sender via Email
>
> [image: Bruce Holt]
>
> Mar 19, 2025 11:21 AM
> Bruce Holt
>
>
> Anthony,
>
> Here's the manual's description for using CENTURY.PIVOT:
>
> Use CENTURY.PIVOT *to override* the system-wide century pivot year
> defined in the *uvconfig* file.
>
> Syntax
> CENTURY.PIVOT [year | nn]
>
> where
>
> year is a four-digit year. The first two digits specify the century and
> the last two specify the pivot year
> nn is a two-digit code indicating a sliding pivot year. nn can be 00
> through 99.
>
>
> *Static century pivot year*
> If you specify the century pivot year with four digits, the first two
> digits specify the century, and the last
> two digits specify the pivot year.
>
>
> For example, if you specify year as 1940, two-digit years specified in the
> range of 40 through 99 stand
> for 1940 though 1999, and two-digit years specified in the range of 00
> through 29 stand for 2000
> through 2039. These ranges remain fixed until you explicitly change them.
>
>
> *Sliding century pivot year*
> If you enter the century pivot year as a two-digit code (nn), the century
> pivot year changes relative to
> the current year. The formula for determining the century pivot year is as
> follows:
>
>
> *current.year - (100 - nn)*
>
>
> For example, if the current year is 2000 and nn is 05, the century pivot
> year is 1905. This means that
> two-digit years specified in the range of 05 through 99 stand for 1905
> through 1999, and two-digit
> years specified in the range of 00 through 04 stand for 2000 through 2004.
>
>
> If the current year is 2005 and nn is 05, the century pivot year is 1910.
> Two-digit years specified in the
> range of 10 through 99 stand for 1910 through 1999, and two-digit years
> specified in the range of 00
> through 09 stand for 2000 through 2009.
>
>
> If the current year is 2001 and nn is 30, the century pivot year is 1931.
> Two-digit years specified in the
> range of 31 through 99 stand for 1931 through 1999, and two-digit years
> specified in the range of 00
> through 30 stand for 2000 through 2030.
>
> I hope this helps!
>
>
> ------------------------------
> Bruce Holt
> Senior Technical Support Engineer
> Rocket Software Inc
> CO US
> ------------------------------
> *Reply to Group Online
> *
> *Reply to Group via Email
> *
> *Reply to Sender Online
> *
> *View Thread
> *
> *Forward
> *
> *Flag as Inappropriate
> *
> *Post New Message Online
> *
> *Post New Message via Email *
>
>
Bruce,

With that said, if I wanted to do a 'sliding' Century.Pivot that
accommodated 75 years back and 25 years ahead, I should go with the two
digs of '25'.

Based on what you explained, this year is 2025 less (100 - 25) would
equate to 1950 as the 'pivot' year.

In 2030, it would equate the pivot year would equate to 2030 less (100
-25) or 1955 as the 'pivot year' and so on and so on.

In my setup, UV 11.3.5 on AIX 7.3, is a two digit CENTURYPIVOT value of
25 permissible in my uvconfig file ? Current uvconfig extract is shown
below with four digits, 1930 .

*Extract from uvconfig file*
*==========================*









*# CENTURYPIVOT - This sets the Century Pivot Year.# This value
determines how 1 and 2 digit years are# interpreted by ICONV. A value of
1930 means that# 30 through 99 are interpreted as the 1900s, and 00#
through 29 mean 2000 - 2029. If this value is two# digits, then the
Century Pivot Year is based on the# current year, as follows. A value of
30 means the# Century Pivot Year will be 1930 in 2000, 1931 in# 2001,
1932 in 2002, etc.CENTURYPIVOT 1930*




Anthony Sperrazza

Senior Director of I.T.

Information Technology | Bulbhead
9732440300 x353
tony@bulbhead.com
www.bulbhead.com
One Bulbhead Plaza, 79 Two Bridges Road, Fairfield, NJ 07004
Make work your leisure, and you will never work a day in your life


On Wed, Mar 19, 2025 at 11:25 AM Bruce Holt via Rocket Software Forum <
Mail@forum.rocketsoftware.com> wrote:

> Anthony, Here's the manual's description for using CENTURY.PIVOT: Use
> CENTURY.PIVOT to override the system-wide century pivot year defined...
> Invite colleagues to join Rocket Forum and expand our expert network!
> ------------------------------
> [image: Rocket Forum]
> D3 and mvBase
>
> Post New Message Online
> Post
> New Message
> Invite your colleagues to join the Rocket Forum and grow our expert
> network. Share this link.
> Re: SET-DATE-WINDOW to adjust the pivot point for a 2-digit year
>
> Reply to Group Online
> Reply
> to Group
> Reply
> to Sender
> Reply
> to Sender via Email
>
> [image: Bruce Holt]
>
> Mar 19, 2025 11:21 AM
> Bruce Holt
>
>
> Anthony,
>
> Here's the manual's description for using CENTURY.PIVOT:
>
> Use CENTURY.PIVOT *to override* the system-wide century pivot year
> defined in the *uvconfig* file.
>
> Syntax
> CENTURY.PIVOT [year | nn]
>
> where
>
> year is a four-digit year. The first two digits specify the century and
> the last two specify the pivot year
> nn is a two-digit code indicating a sliding pivot year. nn can be 00
> through 99.
>
>
> *Static century pivot year*
> If you specify the century pivot year with four digits, the first two
> digits specify the century, and the last
> two digits specify the pivot year.
>
>
> For example, if you specify year as 1940, two-digit years specified in the
> range of 40 through 99 stand
> for 1940 though 1999, and two-digit years specified in the range of 00
> through 29 stand for 2000
> through 2039. These ranges remain fixed until you explicitly change them.
>
>
> *Sliding century pivot year*
> If you enter the century pivot year as a two-digit code (nn), the century
> pivot year changes relative to
> the current year. The formula for determining the century pivot year is as
> follows:
>
>
> *current.year - (100 - nn)*
>
>
> For example, if the current year is 2000 and nn is 05, the century pivot
> year is 1905. This means that
> two-digit years specified in the range of 05 through 99 stand for 1905
> through 1999, and two-digit
> years specified in the range of 00 through 04 stand for 2000 through 2004.
>
>
> If the current year is 2005 and nn is 05, the century pivot year is 1910.
> Two-digit years specified in the
> range of 10 through 99 stand for 1910 through 1999, and two-digit years
> specified in the range of 00
> through 09 stand for 2000 through 2009.
>
>
> If the current year is 2001 and nn is 30, the century pivot year is 1931.
> Two-digit years specified in the
> range of 31 through 99 stand for 1931 through 1999, and two-digit years
> specified in the range of 00
> through 30 stand for 2000 through 2030.
>
> I hope this helps!
>
>
> ------------------------------
> Bruce Holt
> Senior Technical Support Engineer
> Rocket Software Inc
> CO US
> ------------------------------
> *Reply to Group Online
> *
> *Reply to Group via Email
> *
> *Reply to Sender Online
> *
> *View Thread
> *
> *Forward
> *
> *Flag as Inappropriate
> *
> *Post New Message Online
> *
> *Post New Message via Email *
>
>

Anthony,

Yes, CENTURYPIVOT will take a two-digit value, like 25, for a sliding Century Pivot. Your examples match my understanding.

Of course, after this change to uvconfig, a uvregen and restart of UniVerse is necessary to activate the changes.



------------------------------
Bruce Holt
Senior Technical Support Engineer
Rocket Software Inc
CO US
------------------------------

Anthony,

Yes, CENTURYPIVOT will take a two-digit value, like 25, for a sliding Century Pivot. Your examples match my understanding.

Of course, after this change to uvconfig, a uvregen and restart of UniVerse is necessary to activate the changes.



------------------------------
Bruce Holt
Senior Technical Support Engineer
Rocket Software Inc
CO US
------------------------------
Bruce,

Thank you very much. I will implement this change on an upcoming, not so
busy, weekend. Thanks again to you and Brian. Have a great day. 👍




Anthony Sperrazza

Senior Director of I.T.

Information Technology | Bulbhead
9732440300 x353
tony@bulbhead.com
www.bulbhead.com
One Bulbhead Plaza, 79 Two Bridges Road, Fairfield, NJ 07004
Make work your leisure, and you will never work a day in your life


On Wed, Mar 19, 2025 at 2:53 PM Bruce Holt via Rocket Software Forum <
Mail@forum.rocketsoftware.com> wrote:

> Anthony, Yes, CENTURYPIVOT will take a two-digit value, like 25, for a
> sliding Century Pivot. Your examples match my understanding. Of... -posted
> to the "Rocket® D3® | mvBase®" forum
> Invite colleagues to join Rocket Forum and expand our expert network!
> ------------------------------
> [image: Rocket Forum]
> D3 and mvBase
>
> Post New Message Online
> Post
> New Message
> Invite your colleagues to join the Rocket Forum and grow our expert
> network. Share this link.
> Re: SET-DATE-WINDOW to adjust the pivot point for a 2-digit year
>
> Reply to Group Online
> Reply
> to Group
> Reply
> to Sender
> Reply
> to Sender via Email
>
> [image: Bruce Holt]
>
> Mar 19, 2025 2:51 PM
> Bruce Holt
>
>
> Anthony,
>
> Yes, CENTURYPIVOT will take a two-digit value, like 25, for a sliding
> Century Pivot. Your examples match my understanding.
>
> Of course, after this change to uvconfig, a uvregen and restart of
> UniVerse is necessary to activate the changes.
>
>
> ------------------------------
> Bruce Holt
> Senior Technical Support Engineer
> Rocket Software Inc
> CO US
> ------------------------------
> *Reply to Group Online
> *
> *Reply to Group via Email
> *
> *Reply to Sender Online
> *
> *View Thread
> *
> *Forward
> *
> *Flag as Inappropriate
> *
> *Post New Message Online
> *
> *Post New Message via Email *
>
>

I originally posted this in August of 2022. I'm reposting because 1) it's getting closer to 2030, and 2) I've had a few support cases asking about this issue.

Everyone out there know about D3's SET-DATE-WINDOW utility? It's something you can add to your cold start procedure to change the 2-digit year pivot point from 30 to something else. Example if you ICONV a date like 8/1/31, you'll get an internal date in the year 1931, not 2031 as you might expect. I have this in my USER-COLDSTART:

SET-DATE-WINDOW 60

This tells my D3 system to assume that any two-digit years from 00 to 59 are 2000 to 2059, where 60 to 99 are 1960 to 1999. This is a LOT handier than handling it in your application.

I'm posting this because there's a lot of useful stuff in D3 that I was unaware of until I became a Rocket employee and was actually forced to read the manual. Maybe some of you are in the same boat.

https://docs.rocketsoftware.com/bundle/d3_rg_1034/page/d3/d3_all/source/reference_manual/introduction/D3_Reference_Manual_overview.html

https://docs.rocketsoftware.com/bundle?cluster=true&labelkey=d3_dbms&labelkey=d3_dbms_10.4&labelkey=d3_dbms_10.3.4&rpp=10&sort.field=last_uploaded&sort.value=desc

Okay, so what happens in 40 years when we want the pivot point to be between 19XX and 20XX? In a later version of D3 10.4, there will be a (C option added to SET-DATE-WINDOW. Syntax is either SET-DATE-WINDOW 20 (C if you want the pivot point to be between 20XX and 21XX, and SET-DATE-WINDOW 19 (C    to reset it to the current 19XX/20XX pivot. Note that 19 and 20 are the only two valid arguments when using the (C option. In a hundred years or so, some D3 Engineer can add 21 to pivot between 21XX and 22XX, but I'm going to guess that will affect none of us current D3 folks!



------------------------------
Brian S. Cram
Principal Technical Support Engineer
Rocket Software
------------------------------

OK speak for yourself, I might still be here plugging away on my keyboard waiting for the new pivot. Putting aside for the moment, I have checked my user-coldstart for set-date-window and it isn't there. I checked my manual, actually it is a very old paper based, hard copy and it isn't there either. I manually changed a date in my data to 19/03/35 and checked the stored value. It was -11975 which is correct. So this leads me to think that there must be an automatic setting already in place and the set-date-window overrides this. Does that sound about right?



------------------------------
Alex Polglaze

The Book-Keeping Network
Perth Western Australia
+61419 776 348
apolglaze@book-keepingnetwork.com.au
https://www.book-keepingnetwork.com.au/
------------------------------

OK speak for yourself, I might still be here plugging away on my keyboard waiting for the new pivot. Putting aside for the moment, I have checked my user-coldstart for set-date-window and it isn't there. I checked my manual, actually it is a very old paper based, hard copy and it isn't there either. I manually changed a date in my data to 19/03/35 and checked the stored value. It was -11975 which is correct. So this leads me to think that there must be an automatic setting already in place and the set-date-window overrides this. Does that sound about right?



------------------------------
Alex Polglaze

The Book-Keeping Network
Perth Western Australia
+61419 776 348
apolglaze@book-keepingnetwork.com.au
https://www.book-keepingnetwork.com.au/
------------------------------

Yes, Alex, the default setting is 30 and has always been 30. Made sense back in the day, as our internal date range is based on the number of days since 12/31/67, making the pivot point roughly 50 years in both directions. And before you ask, no, I don't know for sure when SET-DATE-WINDOW was added to D3.



------------------------------
Brian S. Cram
Principal Technical Support Engineer
Rocket Software
------------------------------

Yes, Alex, the default setting is 30 and has always been 30. Made sense back in the day, as our internal date range is based on the number of days since 12/31/67, making the pivot point roughly 50 years in both directions. And before you ask, no, I don't know for sure when SET-DATE-WINDOW was added to D3.



------------------------------
Brian S. Cram
Principal Technical Support Engineer
Rocket Software
------------------------------

It's been around at least 25 years. ;)

g.



------------------------------
Gene Buckle
Sr. Programmer/Analyst
Ply Gem Pacific Windows
US
------------------------------

Yes, Alex, the default setting is 30 and has always been 30. Made sense back in the day, as our internal date range is based on the number of days since 12/31/67, making the pivot point roughly 50 years in both directions. And before you ask, no, I don't know for sure when SET-DATE-WINDOW was added to D3.



------------------------------
Brian S. Cram
Principal Technical Support Engineer
Rocket Software
------------------------------

It was added on version 9.1.1 and 9.2.4.

and Thank you for this information



------------------------------
Laurent Dupouy
Developper
CERI SAS
FR
------------------------------