Topic:
* Topic 1: 使用Calendar 对 天数 进行加减
* Topic 2: 使用Calendar 对 天数 进行加减
Topic 1 :使用Calendar 对 天数 进行加减 |
**Tips:**对格式转换一定要注意格式的正确性。
public void test() {
String dateStr = "2017-8-31";
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = sdf.parse(dateStr);
System.out.println("before : " + sdf.format(date));
Calendar c = Calendar.getInstance();
c.setTime(date);
//加2天
c.add(Calendar.DAY_OF_MONTH, 2);
date = c.getTime();
System.out.println("after : " + sdf.format(date));
} catch (Exception e) {
e.printStackTrace();
}
}
Topic 2:使用Calendar 求月份间隔数 |
根据两个时间,求得其之间的月份数
/**
* 适用 当前时间 大于 起始时间
* @param nowDateStr 当前时间字符串
* @param originalDateStr 起始时间字符串
* @return 期数
*/
private int getMonthInterval(String nowDateStr, String originalDateStr) {
DateFormat sdf = new SimpleDateFormat("yyyy-MM");
try {
Date originalDate = sdf.parse(originalDateStr);
Date nowDate= sdf.parse(nowDateStr);
Calendar nowCalender = Calendar.getInstance();
Calendar originalCalender = Calendar.getInstance();
originalCalender.setTime(originalDate);
nowCalender.setTime(nowDate);
int originalYear = originalCalender.get(Calendar.YEAR);
int nowYear = nowCalender.get(Calendar.YEAR);
int originalMonth = originalCalender.get(Calendar.MONTH);
int nowMonth = nowCalender.get(Calendar.MONTH);
if (nowYear < originalYear || (nowYear == originalYear && nowMonth < originalMonth)) {
return 0;
}
int yearInterval = Math.abs(nowYear - originalYear);
int monthInterval = 0;
if (nowMonth < originalMonth) {
yearInterval --;
monthInterval = nowMonth + 12 - originalMonth;
} else {
monthInterval = nowMonth - originalMonth;
}
return Math.abs(yearInterval * 12 + monthInterval);
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}