Has my milk expired?
Ruby, 115 characters

f=-&gt;a,t{[a,a.rotate(~s=r=0),a.reverse].map{|x,*y|(t&gt;Time.gm(x&lt;100?x+2e3-100*x/=50:x,*y)||r+=100
s+=1)rescue p}
r/s}


This defines a function f that takes two arguments: an array containing the input, and "today's" date.

Examples:

f[[14,12,14], Time.new]
100
f[[8,2,2006], Time.new]
0
f[[8,2,2006], Time.new(2006, 7, 5)]
50
f[[6,7,5], Time.new(2006, 7, 5)]
33