0
点赞
收藏
分享

微信扫一扫

【Java】 之 Date、Calendar


Topic:

* Topic 1: 使用Calendar 对 天数 进行加减
* Topic 2: 使用Calendar 对 天数 进行加减

Topic 1 :使用Calendar 对 天数 进行加减

**Tips:**对格式转换一定要注意格式的正确性。

【Java】 之 Date、Calendar_date

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;
}


举报

相关推荐

0 条评论