What's special about year 3000?

May 20, 2008
12,354
135
Syracuse, NY, USA
I'm just curious.
Code:
v:\> echo %@makeage[2999-12-31,23:59:59]
441481535990000000

v:\> echo %@makeage[3000-01-01,00:00:00]
TCC: Invalid date "%@makeage[3000-01-01,00:00:00]"
 
Code:
c:\users\jlc\utils>echo %@makeage[3000-01-01,00:00:00]
TCC: Invalid date "%@makeage[3000-01-01,00:00:00]"

c:\users\jlc\utils>ver

TCC  24.02.46 x64   Windows 7 [Version 6.1.7601]

Joe
 
echo %@makeage[3000-01-01,00:00:00]
441481536000000000

TCC 24.02.46 x64 Windows 10 [Version 10.0.17763.379]
TCC Build 46 Windows 10 Build 17763
Interesting! My first report was on Win 7/32. On Win 10/64 I get:
Code:
v:\> ver

TCC  24.02.46 x64   Windows 10 [Version 10.0.18362.1]

v:\> echo %@makeage[3000-01-01,00:00:00]
TCC: Invalid date "%@makeage[3000-01-01,00:00:00]"
 
Because, why would you do that?
At first, I wanted to see if I could reverse this (below). Then I wanted to see what the limit was because I couldn't find any mention of it in the help.
Code:
v:\> echo %@agedate[%@eval[2**63-1]]
30828-09-14,02:48:05.477
 
Code:
c:\users\jlc\utils>plugin /l ISO8601-x64.dll
ISO8601 plugin v1.6.3 loaded.

c:\users\jlc\utils>echo %@makeage[3000-01-01,00:00:00]
441481536000000000

c:\users\jlc\utils>ver

TCC  24.02.46 x64   Windows 7 [Version 6.1.7601]

This is useful for people who take advantage of Special Relativity.

Joe
 
If the year is >= 3000, TCC assumes you've made a typo. (Because, why would you do that?).
Because I want to ensure the program works correctly in all circumstances.
Placing arbitrary restrictions like that have bitten developers not once in the past already.
Enough to recall the 2 digits year.
 
Rex said "24.02.47 Extended maximum year in dates & ranges to 30827 ".

I don't see that in @MAKEAGE. Should I?

Code:
v:\> ver
TCC  24.02.47   Windows 7 [Version 6.1.7601]

v:\> echo %@makeage[3000-12-31]
TCC: Invalid date "%@makeage[3000-12-31]"
 
Rex said "24.02.47 Extended maximum year in dates & ranges to 30827 ".

I don't see that in @MAKEAGE. Should I?

Code:
v:\> ver
TCC  24.02.47   Windows 7 [Version 6.1.7601]

v:\> echo %@makeage[3000-12-31]
TCC: Invalid date "%@makeage[3000-12-31]"
Ditto for TOUCH.