think in java and dateutil
thinkinjava c11