1. java中如何实现日期相减

求两个日期之间相隔的天数:
Java代码示例:内
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");
java.util.Date beginDate= format.parse("2007-12-24");
java.util.Date endDate= format.parse("2007-12-25");
long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
System.out.println("相隔的天数容="+day);

2. JAVA中两个值相减

不应该用s1-s2,因为String类型不能直接相减,要用a-b.

3. java相减问题

肯定会出错,你应该把当前时间写在SQL语句里,然后用函数把字符串转化成日期,在与数据的时间进行相减这个样就可以了!因为不知道你用的是什么数据库,不同的数据库函数也是不太一样的!
我用的MySQL日期相减TO_DAYS(NOW()) - TO_DAYS(startdate)
TO_DAYS()就是把字符串转换成日期 NOW()是取系统当前时间,startdate是数据库的字段。相减之后得到的是天数!

4. java数组相减问题

public static void main(String[] args) {

//输入的部分你写了我就不管了

int[] a = {1,4,5,7,8,9};

int[] b = {0,9,7,1};

for (int i = 0; i < 6; i++) {

//a中的数是否b中也存在

boolean have = false;

for (int j = 0; j < 4; j++) {

if (a[i]==b[j]){

have = true;

break;

}

}

if (!have){

System.out.print(a[i]);

}

}

}

运行截图

5. java中如何进行减法运算

setText(""+number1-number2);
因为java是从左到右处理的,在减法运算前有""字符串处专理, java就会把之后的都属当做字符串处理.改成
setText(""+(number1-number2));

如果减法运算在前面,比如 number1-number2 + "".这样是可以的

6. java的加减乘除运算

使用并且一定要用String来够造。
实现方法如下:

import java.math.BigDecimal;

/**

* 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精

* 确的浮点数运算,包括加减乘除和四舍五入。

*/

public class Arith{

//默认除法运算精度

private static final int DEF_DIV_SCALE = 10;

//这个类不能实例化

private Arith(){

}

/**

* 提供精确的加法运算。

* @param v1 被加数

* @param v2 加数

* @return 两个参数的和

*/

public static double add(double v1,double v2){

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.add(b2).doubleValue();

}

/**

* 提供精确的减法运算。

* @param v1 被减数

* @param v2 减数

* @return 两个参数的差

*/

public static double sub(double v1,double v2){

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.subtract(b2).doubleValue();

}

/**

* 提供精确的乘法运算。

* @param v1 被乘数

* @param v2 乘数

* @return 两个参数的积

*/

public static double mul(double v1,double v2){

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.multiply(b2).doubleValue();

}

/**

* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到

* 小数点以后10位,以后的数字四舍五入。

* @param v1 被除数

* @param v2 除数

* @return 两个参数的商

*/

public static double div(double v1,double v2){

return div(v1,v2,DEF_DIV_SCALE);

}

/**

* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指

* 定精度,以后的数字四舍五入。

* @param v1 被除数

* @param v2 除数

* @param scale 表示表示需要精确到小数点以后几位。

* @return 两个参数的商

*/

public static double div(double v1,double v2,int scale){

if(scale<0){

throw new IllegalArgumentException(

"The scale must be a positive integer or zero");

}

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();

}

/**

* 提供精确的小数位四舍五入处理。

* @param v 需要四舍五入的数字

* @param scale 小数点后保留几位

* @return 四舍五入后的结果

*/

public static double round(double v,int scale){

if(scale<0){

throw new IllegalArgumentException(

"The scale must be a positive integer or zero");

}

BigDecimal b = new BigDecimal(Double.toString(v));

BigDecimal one = new BigDecimal("1");

return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();

}

};

7. java 两个时间相减

先转成Date 再获取毫秒数来减

java.text.SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
java.util.Calendarc=Calendar.getInstance();
Stringdate1="2014-10-1000:00:00";
Stringdate2="2015-10-1000:00:00";
c.setTime(sdf.parse(date1));
inty1=c.get(Calendar.YEAR);
intm1=c.get(Calendar.MONTH);


c.setTime(sdf.parse(date2));
inty2=c.get(Calendar.YEAR);
intm2=c.get(Calendar.MONTH);

inty=Math.abs(y2-y1);
intm=y*12+Math.abs(m1-m2);

longd1=sdf.parse(date1).getTime();
longd2=sdf.parse(date2).getTime();
intd=(int)(Math.abs(d2-d1)/(1000*60*60*24));

System.out.println("相差年:"+y);
System.out.println("相差月:"+m);
System.out.println("相差天:"+d);

8. java 两个日期相减的怎么做

对已日期相减,最高效的做法就是将二者都转换成毫秒,相减之后再根据你的需求进行单位转换,比如你想显示相差的秒数,就除以1000,以此类推,翠花,上代码:

/*随便选两个时间*/
Stringd1="2015-04-17";
Stringd2="2015-06-17";

/*先转成毫秒并求差*/
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
longm=sdf.parse(d2).getTime()-sdf.parse(d1).getTime();

/*根据你的需求进行单位转换*/
System.out.println("相差毫秒数:"+m);
System.out.println("相差天数:"+(m/(1000*60*60*24)));

要注意的地方:

时间格式可能有很多种,比如20150611或者2015年6月11日等等。所以你需要以对应的方式来初始化SimpleDateFormat对象。

例如20150611,就要写成:

SimpleDateFormatsdf=newSimpleDateFormat("yyyyMMdd");

SimpleDateFormat类是非线程安全的,所以在高并发下需要加同步锁,否则会出现灵异事件。

9. java月份相减

java中Calendar类提供了月份计算方法的,直接通过Month方法进行计算得出月份差,之后算出年份的差乘以12,之后的和就是月份差。
public void monthSpace() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String str1 = "2012-02-01";
String str2 = "2012-02-2";
Calendar bef = Calendar.getInstance();
Calendar aft = Calendar.getInstance();
bef.setTime(sdf.parse(str1));
aft.setTime(sdf.parse(str2));
int result = aft.get(Calendar.MONTH) - bef.get(Calendar.MONTH);
int month = (aft.get(Calendar.YEAR) - bef.get(Calendar.YEAR))*12;
System.out.println(month+result );
}

10. 如何用JAVA把两个时间相减

调试过的程序,可以直接运行`!!!!!!

import java.util.Date;

import com.ibm.icu.text.SimpleDateFormat;

public class mss {

public mss() {
}

public long fromDateStringToLong(String inVal) { //此方法计算时间毫秒
Date date = null; //定义时间类型
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-mm-dd hh:ss");
try {
date = inputFormat.parse(inVal); //将字符型转换成日期型
} catch (Exception e) {
e.printStackTrace();
}
return date.getTime(); //返回毫秒数
}

private static String dqsj() { //此方法用于获得当前系统时间(格式类型2007-11-6 15:10:58)
Date date = new Date(); //实例化日期类型
String today = date.toLocaleString(); //获取当前时间
System.out.println("获得当前系统时间 "+today); //显示
return today; //返回当前时间
}

public static void main(String[] args) {
String dqsj = dqsj(); //获得String dqsj = dqsj(); //获得当前系统时间
mss df = new mss(); //实例化方法

long startT=df.fromDateStringToLong("2005-03-03 14:51:23"); //定义上机时间
long endT=df.fromDateStringToLong("2004-03-03 13:50:23"); //定义下机时间

long ss=(startT-endT)/(1000); //共计秒数
int MM = (int)ss/60; //共计分钟数
int hh=(int)ss/3600; //共计小时数
int dd=(int)hh/24; //共计天数

System.out.println("共"+dd+"天 准确时间是:"+hh+" 小时 "+MM+" 分钟"+ss+" 秒 共计:"+ss*1000+" 毫秒");

}

}

这是执行结果``

获得当前系统时间 2007-11-6 15:57:39
共366天 准确时间是:8785 小时 527100 分钟31626001 秒 共计:31626001000 毫秒