joda time

Javaの日付周りの標準モジュールが面倒で面倒で面倒で面倒で面倒で面倒で面倒でしょうがなくて心折れかけていたんですが、
joda timeみつけたら楽になった。

import org.joda.time.DateTime;

public class Hoge {
    public static void main(String[] args) {
        DateTime datetime = new DateTime();
        // 先月
        System.out.println(datetime.minusMonths(1)));
        // 来月 
        System.out.println(datetime.plusMonths(1)));

        // 月初
        System.out.println(datetime.dayOfMonth().getMinimumValue());
        // 月末
        System.out.println(datetime.dayOfMonth().getMaximumValue());

        // 月曜日が1
        for( int day = 1; day < 10; day++ ) {
            DateTime first_datetime = new DateTime(datetime.getYear(), datetime.getMonthOfYear(), day, 0, 0, 0, 0);
            System.out.println(first_datetime);
            System.out.println(first_datetime.getDayOfWeek());
        }

        // 今週1週間の最初の日を取得する
        System.out.println(datetime.dayOfWeek().withMinimumValue());
        // 今週1週間の最後の日を取得する
        System.out.println(datetime.dayOfWeek().withMaximumValue());

        //今月最初の1週間
        DateTime first_day = new DateTime(datetime.getYear(),datetime.getMonthOfYear(), 1, 0, 0, 0, 0);
        System.out.println(first_day);
        // 1週間の最初の日を取得する
        System.out.println(first_day.dayOfWeek().withMinimumValue());
        // 1週間の最後の日を取得する
        System.out.println(first_day.dayOfWeek().withMaximumValue());
    }
}
javac -classpath joda-time-2.0.jar:. Hoge.java
java -classpath joda-time-2.0.jar:. Hoge.java

http://joda.sourceforge.net/