2016-01-07
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));
}
}