java 减法_java中年月日的加减法,年月的加减法使用详解

java计算两个年月日之间相差的天数:

public static int daysBetween(String smdate,String bdate) throws ParseException{

int daysInterval=0;

if(StringUtils.isNoneBlank(smdate)&&StringUtils.isNoneBlank(bdate)){

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

Calendar cal = Calendar.getInstance();

cal.setTime(sdf.parse(smdate));

long time1 = cal.getTimeInMillis();

cal.setTime(sdf.parse(bdate));

long time2 = cal.getTimeInMillis();

long between_days=(time2-time1)/(1000*3600*24);

daysInterval = Integer.parseInt(String.valueOf(between_days));

}

return daysInterval;

}

java计算年月之间的加法和减法:

public static void main(String[] args) throws ParseException

{

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");

String time=sdf.format(new Date());

Calendar cd = Calendar.getInstance();

cd.setTime(sdf.parse(time));

cd.add(Calendar.MONTH, 0);//往前一月,,如果是整数则进行加法,如果是负数,则进行减法

Date date=cd.getTime();

String endTimeString = sdf.format(date);

cd.add(Calendar.MONTH, -7);//往后7个月

String startTimeString = sdf.format(cd.getTime());

String startTime = startTimeString.replaceAll("-", "");//格式日期yyyyMM

String endTime  = endTimeString.replaceAll("-", "");//格式日期yyyyMM

System.out.println(startTime);

System.out.println(endTime);

}

获取一个月中的第一天和最后一天:

public static void main(String[] args)

{

// 获取当前年份、月份、日期

Calendar cale = null;

cale = Calendar.getInstance();

// 获取当月第一天和最后一天

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

// 获取前月的第一天

cale = Calendar.getInstance();

cale.add(Calendar.MONTH, -6);

cale.set(Calendar.DAY_OF_MONTH, 1);

String startTimeString = format.format(cale.getTime());

// 获取前月的最后一天

cale = Calendar.getInstance();

cale.add(Calendar.MONTH, 0);

cale.set(Calendar.DAY_OF_MONTH, 0);

String endTimeString = format.format(cale.getTime());

String startTime =startTimeString.replaceAll("-", "");//格式日期yyyyMMdd

String endTime  =endTimeString.replaceAll("-", "");//格式日期yyyyMMdd

String layerTime = startTimeString +"至"+endTimeString;

System.out.println(layerTime);

}

计算两个月份之间相差的月份个数:

public int getMonthInterval(String str1,String str2) throws ParseException{

int monthLength = 0;

if(StringUtils.isNoneBlank(str1)&& StringUtils.isNoneBlank(str2)){

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");

Calendar bef = Calendar.getInstance();

Calendar aft = Calendar.getInstance();

bef.setTime(sdf.parse(str1));

aft.setTime(sdf.parse(str2));

int result = aft.get(Calendar.MONTH) - bef.get(Calendar.MONTH);

int month = (aft.get(Calendar.YEAR) - bef.get(Calendar.YEAR)) * 12;

monthLength = Math.abs(month + result);

}

return monthLength;

}

java对当前月份进行传值计算:

public static Map getMonth(int length) throws ParseException{

Map map = new HashMap<>();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");

String time=sdf.format(new Date());

Calendar cd = Calendar.getInstance();

cd.setTime(sdf.parse(time));

cd.add(Calendar.MONTH, -length);//往前一月

Date date=cd.getTime();

String monthFormat= sdf.format(date);

//        System.out.println(monthFormat);

String monthString =monthFormat.replaceAll("-", "");//格式日期yyyyMM

map.put("monthFormat", monthFormat);

map.put("monthString", monthString);

return map;

}

谢谢点赞!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值