#JavaScript (ES6) 52 A function returning the output as an array. <!-- language: lang-js --> (y=(new Date).getYear())=>[(y+~(y/4)-13)/10,y*3-20] Just for testing purpose, the function accepts an input equals to current year - 1900 (e.g. 105 for 2015) That's in the line of the ETHproductions' answer (the math is the math) but avoding the *evil trick* it is more portable in different locales. And as a function it's 1 byte shorter. Test snippet: <!-- begin snippet: js hide: false --> <!-- language: lang-js --> f=(y=(new Date).getYear())=>[(y+~(y/4)-13)/10,y*3-20] o=[]; for(a=2000;a<2050;a++)o.push(`<td>${a}</td><td>${f(a-1900)}</td>`); document.write(`<table><tr>${o.join`</tr><tr>`}</tr></table>`) <!-- language: lang-css --> td { text-align:right; font-family:monospace } <!-- end snippet --> f=(y=(new Date).getYear()=>[(y+~(y/4)-13)/10,y*3-20]