日期的计算处理
来源:互联网 发布:网络门店管理系统 编辑:程序博客网 时间:2024/05/18 00:38
import java.rmi.activation.ActivationException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.zip.DataFormatException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class datetest {
public static void main(String[] args) throws Exception {
Date date=new Date();
date.setDate(date.getDate()+1); //给当前时间加上一天
//当前时间两天后的日期
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Calendar c=Calendar.getInstance();
c.add(Calendar.DAY_OF_WEEK,2);
System.out.println(df.format(c.getTime()));
//两日期相差的天数
long days = DateDays("2010-12-25","2010-12-28");
System.out.println(days);
//字符串格式的日期转化为Date类型的日期
// String d="2006-11-23" ;
//
// SimpleDateFormat dff =new SimpleDateFormat("yyyy-MM-dd");
// java.util.Date cDate = dff.parse(d);
// java.sql.Date dd = new java.sql.Date(cDate.getTime());
//
// System.out.println("转换后日期="+dd);
System.out.println(getBeforeAfterDate("2010-12-28",2));
}
//计算两日期相差的天数
public static long DateDays(String date1, String date2)
throws DataFormatException, ActivationException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
long myTime;
Date aDate2;
Date aDate;
long myTime2;
long days = 0;
try {
aDate = formatter.parse(date1);// 任意日期,包括当前日期 格式成时间Date类型
myTime = (aDate.getTime() / 1000); //Date.getTime()返回的是毫秒数
// SimpleDateFormat formatter =new SimpleDateFormat("yyyy-MM-dd");
aDate2 = formatter.parse(date2);// 任意日期,包括当前日期
myTime2 = (aDate2.getTime() / 1000);
if (myTime > myTime2) {
days = (myTime - myTime2) / (1 * 60 * 60 * 24)+1;
} else {
days = (myTime2 - myTime) / (1 * 60 * 60 * 24)+1;
}
} catch (Exception e) {
e.printStackTrace();
}
return days;
}
//给定字符串格式的时间,算出n天后的日期
public static java.sql.Date getBeforeAfterDate(String datestr, int day) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
java.sql.Date olddate = null;
try {
df.setLenient(false);
olddate = new java.sql.Date(df.parse(datestr).getTime());
} catch (ParseException e) {
throw new RuntimeException("日期转换错误");
}
Calendar cal = new GregorianCalendar();
cal.setTime(olddate);
int Year = cal.get(Calendar.YEAR);
int Month = cal.get(Calendar.MONTH);
int Day = cal.get(Calendar.DAY_OF_MONTH);
int NewDay = Day + day;
cal.set(Calendar.YEAR, Year);
cal.set(Calendar.MONTH, Month);
cal.set(Calendar.DAY_OF_MONTH, NewDay);
return new java.sql.Date(cal.getTimeInMillis());
}
}