时间按年月日时分秒推算日期
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);
}