この回答は今のところ関係ありませんが、Java 8 には、日付と時刻のより優れた実装/表現である JSR-310 が含まれるように設定されています。
この機能は、Java 8 機能リストで確認できます。
Java 8 では、日付を表す新しいオブジェクトがあります。日付に最も似ているのはLocalDateTime です
Java でこれを行う方法の例を次に示します (もちろん、Groovy の方が簡単です)。
LocalDateTime now = LocalDateTime.now();
int year = now.getYear();
int month = now.getMonthValue();
int day = now.getDayOfMonth();
int hour = now.getHour();
int minute = now.getMinute();
// your answer
int dayOfYear = now.getDayOfYear();
これは、Java 8 のマイルストーン6からいじったり遊んだりできるようにする必要があります。マイルストーン 6 は 2013 年 1 月 31 日に設定されます。