java根据当前日期+指定天数(月份...)得到相应日期,计算两日期之差

package com.utcsoft.pcapps.selfservice.controller;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Test {

	/**
	 * @param args
	 */
	
	/**
	 * 此函数实现:给定日期和经过天数,算出结果日期
	 *@author 刘鹏
		其中sDate为指定日期,iDate为多少时间段(可以是 年、月、日...  具体根据iCal来确定)
		iCal为某种时间段例如  月:Calendar.MONTH(具体可查询api中Calendar类)
		sStr为日期格式 例如:"yyyyMMdd"(具体可查询api中Calendar类)
	 * @param sDate
	 * @param iDate
	 * @param iCal
	 * @param sStr
	 * @return
	 */
	public String getNextDate(String sDate, int iDate,int iCal, String sStr){
        String sNextDate = "";
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat formatter = new SimpleDateFormat(sStr);
        Date date = null;
        try {
            date = formatter.parse(sDate);
        } catch (ParseException e) {
        	e.printStackTrace();
        }
        calendar.setTime(date);
        calendar.add(iCal, iDate);
        sNextDate = formatter.format(calendar.getTime());
        return sNextDate ;
    }
	
	/**
	 * 返回两个日期之间相差几天
	 * @author 刘鹏
	 * @param fDate
	 * @param oDate
	 * @return
	 */
	public static int daysOfTwo(Date fDate, Date oDate) {

	       Calendar aCalendar = Calendar.getInstance();

	       aCalendar.setTime(fDate);

	       int day1 = aCalendar.get(Calendar.DAY_OF_YEAR);

	       aCalendar.setTime(oDate);

	       int day2 = aCalendar.get(Calendar.DAY_OF_YEAR);

	       return day2 - day1;

	    }
	
	public static void main(String[] args) throws ParseException {
		Test test = new Test();
		String a = test.getNextDate("2014-12-31", 1, Calendar.DATE, "yyyy-MM-dd");
		System.out.println(a);
		
		String str1 = "2013-08-11";
		String str2 = "2013-08-15";
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
		Date d1 = simpleDateFormat.parse(str1);
		Date d2 = simpleDateFormat.parse(str2);
		int day = daysOfTwo(d1, d2);
		System.out.println(day);
	}
}

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值