Java覚書 月加算・月末

月末を出すときは、加算前の日を1日にしておいて、加算後-1日するのが自分の常套手段。
(どの言語でも大体このロジックは使えるし)

import java.util.Calendar;

public class Main {
    public static void main(String[] args) throws Exception {

        // 指定日からnヶ月後の月末を出力
        int y = 2012;
        int m = 12;
        int d = 14;
        int n = 2;
        
        Calendar cal = Calendar.getInstance();

        cal .set(y,m - 1, d);
        dispDate(calendar);
    
        cal .set(y,m - 1, 1);
        cal .add(Calendar.MONTH, n + 1);
        cal .add(Calendar.DATE, -1);
        dispDate(cal);
    }

  private static void dispDate(Calendar cal ){
    int year = cal .get(Calendar.YEAR);
    int month = cal .get(Calendar.MONTH) + 1;
    int day = cal .get(Calendar.DATE);

    StringBuffer sb = new StringBuffer();
    sb.append(year + "年" + month + "月" + day + "日");
    
    System.out.println(new String(sb));

    }
}
Tags:

Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください