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 毫秒