« h:panelGridで内側のテーブルの線をけす | トップページ | Javaで一週間の日付をつくる »

Javaで日数の差

Javaで日数の差を計算してみる。
あってるかなあ?(確かめろよおい!)

GregorianCalendar gcStart = new GregorianCalendar();
gcStart.set(GregorianCalendar.YEAR, 2005);
gcStart.set(GregorianCalendar.MONTH, 4 - 1);
gcStart.set(GregorianCalendar.DAY_OF_MONTH, 15);

GregorianCalendar gcEnd = new GregorianCalendar();
gcEnd.set(GregorianCalendar.YEAR, 2006);
gcEnd.set(GregorianCalendar.MONTH, 10 - 1);
gcEnd.set(GregorianCalendar.DAY_OF_MONTH, 20);

int daysStart = gcStart.get(GregorianCalendar.DAY_OF_YEAR);
int daysEnd = gcEnd.get(GregorianCalendar.DAY_OF_YEAR);

System.out.println("  daysStart=" + daysStart);
System.out.println("  daysEnd=" + daysEnd);

if (gcStart.get(GregorianCalendar.YEAR) == gcEnd
        .get(GregorianCalendar.YEAR)) {
    System.out.println("daysEnd - daysStart = "
            + (daysEnd - daysStart));
} else {
    // 開始の同じ年の年末日
    GregorianCalendar gcIdx = (GregorianCalendar) gcStart.clone();
    gcIdx.set(GregorianCalendar.MONTH, 12 - 1);
    gcIdx.set(GregorianCalendar.DAY_OF_MONTH, 31);

    int daysTmp = gcIdx.get(GregorianCalendar.DAY_OF_YEAR);

    System.out.println("  daysTmp=" + daysTmp);
    int days = daysTmp - daysStart;
    System.out.println("ループ開始前  days=" + days);

    // 開始の翌年からスタート
    gcIdx.add(GregorianCalendar.YEAR, 1);

    while (gcIdx.get(GregorianCalendar.YEAR) < gcEnd
            .get(GregorianCalendar.YEAR)) {
        int tmp = gcIdx.get(GregorianCalendar.DAY_OF_YEAR);
        System.out.println(" 途中=" + tmp);
        days += tmp;
        gcIdx.add(GregorianCalendar.YEAR, 1);
    }

    days += daysEnd;

    System.out.println("days=" + days);
}

|

« h:panelGridで内側のテーブルの線をけす | トップページ | Javaで一週間の日付をつくる »

Java色々」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/4757/697612

この記事へのトラックバック一覧です: Javaで日数の差:

» Javaのネタ [ネタ蔵]
Javaのネタを追いかけるヨ! [続きを読む]

受信: 2006年2月13日 (月) 18時32分

« h:panelGridで内側のテーブルの線をけす | トップページ | Javaで一週間の日付をつくる »