时间按年月日时分秒推算日期

2017-10-26  本文已影响0人  Cabigail

1,按照指定日期和推移时分秒年月日计算日期

//计算指定日期之前多少年月日时分秒的时间
    //往前推数据
    public String getResultTime(String endtime, String time)
    {
        int dateType = Calendar.DATE;
        String tag = time.substring(time.length()-1,time.length());
        String num = time.substring(0,time.length()-1);
        if ("m".equals(tag)) dateType = Calendar.MONTH;
        if ("w".equals(tag)) dateType = Calendar.WEEK_OF_MONTH;
        if ("y".equals(tag)) dateType = Calendar.YEAR;
        if ("h".equals(tag)) dateType = Calendar.HOUR; 
        if ("min".equals(tag)) dateType = Calendar.MINUTE; 
        if ("s".equals(tag)) dateType = Calendar.SECOND; 
        return getNextDate(endtime,-Integer.parseInt(num),dateType,"yyyy-MM-dd hh:mm:ss");
}

    /**
     * 此函数实现:给定日期和经过天数,算出结果日期
     *@author zn
    其中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 ;
    }


public static void main(String[] args) throws Exception
{
  String endtime = CalendarUtil.getShortString();
  String starttime = this.getResultTime(endtime,time);
} 
上一篇下一篇

猜你喜欢

热点阅读