急!!!求计算两日期差值的代码 (time1 - time2)/(1000*60*60*24) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public int calculate(long time1, long time2){ int answer;//该值为两日期之间相差的天数 answer = (time1 - time2)/(1000*60*60*24); return answer;} public static double compareDate(Date date1,Date date2){ double time1,time2,msPerDay; msPerDay=24*60*60*1000; time1=date1.getTime (); time2=date2.getTime (); return (time2-time1)/msPerDay; } 说明String startdate, String enddate 的参数根式都是2003-04-01式样的public long 两天之间天数(String startdate, String enddate) throws java.lang.Exception { int[] start = new int[3]; java.util.StringTokenizer start1 = new java.util.StringTokenizer(startdate, "-"); int i = 0; while (start1.hasMoreTokens()) { start[i++] = Integer.parseInt(start1.nextToken()); System.out.println(start[i - 1]); } int[] end = new int[3]; java.util.StringTokenizer end1 = new java.util.StringTokenizer(enddate, "-"); i = 0; while (end1.hasMoreTokens()) { end[i++] = Integer.parseInt(end1.nextToken()); System.out.println(end[i - 1]); } System.out.println(end[2]); Calendar c1 = Calendar.getInstance(); c1.set(start[0], start[1] - 1, start[2]); long m1 = c1.getTime().getTime(); Calendar c2 = Calendar.getInstance(); c2.set(end[0], end[1] - 1, end[2]); long m2 = c2.getTime().getTime(); System.out.println("m1=" + m1); System.out.println("m2=" + m2); long d = m2 - m1; if (m1 > m2) { // ------------------------------------------------------------------- System.out.println("数据库时间设置有错误!"); // ------------------------------------------------------------------- throw(new Exception("数据库时间设置有错误!请重新设置数据库时间!!")); } return (d / (3600 * 24 * 1000)); } 楼主传的参数是long的,直接计算相减误差可能很大的。建议用BigDecimal类的BigDecimal(String)构造器封装后计算 日期加减SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");String str="20011230";Date dt=sdf.parse(str,new ParsePosition(0));Calendar rightNow = Calendar.getInstance();rightNow.setTime(dt);rightNow.add(Calendar.DATE,2);//你要加减的日期 Date dt1=rightNow.getTime();String reStr=sdf.format(dt1,"",new FieldPosition(0));System.out.println(reStr); 我用的是SSH中编写hql语句,查询的时候使用rownum取前六位,在oracle中可以查出数据,但是hql查询却没有? java 接口 抽象类问题 java基础题求思路 笔试题 怎么使JTable中用户选中的任意一行信息不能编辑啊?? 求:是简单的图片显示实例!! 求底层库java.sql.PreparedStatement的具体实现代码 新手求助 多态问题 Java的bug??? 为什么我的连接数据库的类用thin可以,而用oci8就出错? 多线程中wait()和notify()怎么用啊? 初学者找JBuilder7的例子?
{
int answer;//该值为两日期之间相差的天数
answer = (time1 - time2)/(1000*60*60*24);
return answer;
}
double time1,time2,msPerDay;
msPerDay=24*60*60*1000;
time1=date1.getTime ();
time2=date2.getTime (); return (time2-time1)/msPerDay;
}
public long 两天之间天数(String startdate, String enddate) throws java.lang.Exception {
int[] start = new int[3];
java.util.StringTokenizer start1 = new java.util.StringTokenizer(startdate, "-");
int i = 0;
while (start1.hasMoreTokens()) {
start[i++] = Integer.parseInt(start1.nextToken());
System.out.println(start[i - 1]);
}
int[] end = new int[3];
java.util.StringTokenizer end1 = new java.util.StringTokenizer(enddate, "-");
i = 0;
while (end1.hasMoreTokens()) {
end[i++] = Integer.parseInt(end1.nextToken());
System.out.println(end[i - 1]);
}
System.out.println(end[2]);
Calendar c1 = Calendar.getInstance();
c1.set(start[0], start[1] - 1, start[2]);
long m1 = c1.getTime().getTime();
Calendar c2 = Calendar.getInstance();
c2.set(end[0], end[1] - 1, end[2]);
long m2 = c2.getTime().getTime();
System.out.println("m1=" + m1);
System.out.println("m2=" + m2);
long d = m2 - m1;
if (m1 > m2) {
// -------------------------------------------------------------------
System.out.println("数据库时间设置有错误!");
// -------------------------------------------------------------------
throw(new Exception("数据库时间设置有错误!请重新设置数据库时间!!"));
}
return (d / (3600 * 24 * 1000));
}
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
String str="20011230";
Date dt=sdf.parse(str,new ParsePosition(0));
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(dt);
rightNow.add(Calendar.DATE,2);//你要加减的日期
Date dt1=rightNow.getTime();
String reStr=sdf.format(dt1,"",new FieldPosition(0));
System.out.println(reStr);