TI-Basic (TI-84 Plus CE with OS 5.2+), 64 bytes
getDate
"It's "+toString(Ans(1))+" already, folks, go home.
TI-Basic is a tokenized language. Some commands (getDate
, toString(
, etc.), and all lowercase letters are two-bytes and everything else used here is one byte each.
Explanation:
getDate # 3, store {Y,M,D} in Ans
"It's "+toString(Ans(1))+" already, folks, go home. # 61, implicitly return required string with Y from getDate
TI-Basic (TI-84 Plus CE with OS 5.1), 108 bytes
{0,1→L1
getDate
Ans(1)L1→L2
LinReg(ax+b) Y1
Equ►String(Y1,Str0
sub(Str0,1,length(Str0)-3→Str0
"It's "+Str0+" already, folks, go home.
TI-Basic is a tokenized language. The more complicated user variables (Y1
, L1
, L2
, Str0
), some commands (LinReg(ax+b
, getDate
, sub(
, Equ►String(
, length(
), and all lowercase letters are two-bytes and everything else used here is one byte each.
OS 5.2 added a toString(
command, which obsolesces about half of this submission, which is based off of this algorithm.
Explanation:
{0,1→L1 # 8 bytes
getDate # 3 bytes, store {Y,M,D} list in Ans
Ans(1)L1→L2 # 10 bytes, multiply L1 by the year and store in L2
LinReg(ax+b) Y1 # 5 bytes, take a linear regression of the points specified by each pair of corresponding coordinates in L1 and L2 and store it in Y1
Equ►String(Y1,Str0 # 8 bytes, convert Y1 to a string
sub(Str0,1,length(Str0)-3→Str0 # 18 bytes, remove the "X+0" from LinReg
"It's "+Str0+" already, folks, go home. # 56 bytes, implicitly return the required output