Convert short month names to their longer counterparts [Ended] This challenge has ended! Congratulations Flonk!

I was sure I would get a good grade, but after turning in Flonk's my work, my professor did not believe it was mine and also could not understand why it was so complicated... I failed and my mom grounded me from Facebook and Minecraft for a month. I don't understand. :(

Thanks for all your submissions! Some great answers here. The official winner is Flonk with a score of 64. The top 5 are:


Flonk, 64 (Haskell, with efficient maths!)
DigitalTrauma, 40 (The cloud, the future is now)
primo, 38 (Python, and my personal favorite - and very professional much!)
Sylwester, 20 (Racket, although Janember is stretching it!)
ilmale, 16 (A highly optimized algorithm in Lua)


Original challenge below. 



Please help me, it's very urgent!!! :(

I need to convert shortened versions of month names to their longer representations (e.g "Dec" -> "December"), case-insensitive. Right now I'm using Java; the month's name is a String and I would rather not convert it to a Date object first. Any language will do, though. 

Is there an easy way to do this?? Go easy please I am a newbie to programming!



This is a code trolling popularity contest (the best kind there is!). The answer with the most upvotes on Apr 8, 2014 wins.
It's really simple with a little polynomial interpolation!


First, I looked at the list of short month names

["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"]


and checked the sum of their characters ASCII values

[313,301,320,323,327,333,331,317,328,326,339,300]


then subtracted 300 from those to get a grasp of what I'm dealing with here, and prepared an Array that contains all the longer versions of the months' names.

[13,1,20,23,27,33,31,17,28,26,39,0]
mons = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]


I guess you can see what's going on now - all I need is a function getIndex that maps 13 to 0, 1 to 1, 20 to 2, and so on, so I can simply do

getMonthName shortname = mons !! (getIndex shortname)


Luckily, Wolfram|Alpha can do this for me! The numbers get a bit large, but Haskell can handle that with grace. We just need to make sure to round the results, because floating-point-arithmetic is a little imprecise!
So there you go, fast, elegant, and idiomatic Haskell:

import Data.Char

getIndex x = round $ 11 -
    (220797068189915461*x)/11644212222720 +
    (184127469431441671621*x^2)/6982771136140800 -
    (8800438195450444577647153*x^3)/1013060436431307264000 +
    (2826703553741192361967823*x^4)/2026120872862614528000 -
    (269098602165195540339443*x^5)/2026120872862614528000 +
    (13744405529566098359*x^6)/1692665725031424000 -
    (13060656886070844161*x^7)/39727860252208128000 +
    (5939638907108115199*x^8)/675373624287538176000 -
    (303426664924585177*x^9)/2026120872862614528000 +
    (2983240583426137*x^10)/2026120872862614528000 -
    (12901227927103*x^11)/2026120872862614528000

mons = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
getMonthName = (mons!!).getIndex.subtract 300.fromIntegral.sum.fmap (ord.toLower)


Run it simply like this:

λ&gt; getMonthName "DeC"
"December"

λ&gt; getMonthName "jan"
"January"