处理数据的方式 |
bigdecimal |
|
package com.hu.runable;
import java.math.BigDecimal;
public class BigDecimalTest {
/**
* @param args
* 原因:double,int,float ... 数据类型在处理大数据的时候会出现失真情况
* BigDecimal 是 用于处理大数据的。
* BigDecimal 的一些基本用法,加 ,减 ,乘,除。
* 加 :调用BigDecimal 的方法 add(BigDecimal bigDecimal);
* 减 :调用BigDecimal 的方法 subtract(BigDecimal bigDecimal);
* 乘 :调用BigDecimal 的方法 multiply(BigDecimal bigDecimal);
* 除 :调用BigDecimal 的方法 divide(BigDecimal bigDecimal);
* 下面通过方法演示一下。
*/
public static void main(String[] args) {
BigDecimal bigDecimal1 = new BigDecimal("12.332423455324234");
BigDecimal bigDecimal2 = new BigDecimal("12.332423455324234");
// BigDecimal 的加法
BigDecimal bigDecimalAdd = bigDecimal1.add(bigDecimal2);
System.out.println("加法结果:"+bigDecimalAdd);
// BigDecimal 的减法
BigDecimal bigDecimalSubtract = bigDecimal1.subtract(bigDecimal2);
System.out.println("减法结果:"+bigDecimalSubtract);
// BigDecimal 的乘法
BigDecimal bigDecimalMultiply = bigDecimal1.multiply(bigDecimal2);
System.out.println("乘法结果:"+bigDecimalMultiply);
// BigDecimal 的除法
BigDecimal bigDecimalDivide = bigDecimal1.divide(bigDecimal2);
System.out.println("除法结果:"+bigDecimalDivide);
// 取值零
BigDecimal bigDecimalZero = BigDecimal.ZERO;
System.out.println(bigDecimalZero);
}
}
/***
* 结果
* 加法结果:24.664846910648468
* 减法结果:0E-15
* 乘法结果:152.088668281431318998122067686756
* 除法结果:1
* 0
*/
|
java日期加减 |
java, date, simpledateformat |
|
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class date1 {
/**
* @param args
*/
public static void main(String[] args) {
try {
Date d=new Date(); //获取日期。
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Date date1 = df.parse("2014-09-08 10:10:10");
d=date1;
System.out.println("今天的日期:"+df.format(d));
System.out.println("两天前的日期:" + df.format(new Date(d.getTime() - 2 * 24 * 60 * 60 * 1000)));
System.out.println("三天后的日期:" + df.format(new Date(d.getTime() + 3 * 24 * 60 * 60 * 1000)));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
|
java获取日期之间的间隔天数 |
java, date, calendar, simpledateformat |
|
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/*
* 处理日期的间隔天数
* 处理日期的间隔天数
* 处理日期的间隔天数
*/
public class date {
public static void main(String[] args) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//=========================两个String类型的日期相差天数===================================//
try {
long intervalDays = dateControlRange("2014-10-02","2015-02-03");
System.out.println(intervalDays);
} catch (ParseException e) {
e.printStackTrace();
}
//=========================两个String类型的日期相差天数===================================//
//=========================两个Date类型的日期相差天数===================================//
try {
Date date1 = sdf.parse("2014-09-08 10:10:10");
Date date2 = sdf.parse("2014-11-15 00:00:00");
System.out.println(daysBetween(date1,date2));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//=========================两个Date类型的日期相差天数===================================//
}
/**
* 获取两个日期之间的间隔天数
* @param arrivedate
* @param balanceDate
* @return
* @throws ParseException
*/
public static long dateControlRange(String arrivedate,String balanceDate) throws ParseException{
if("".equals(arrivedate) || null==arrivedate || "".equals(balanceDate) || null==balanceDate ){
return 999999 ; //表示间隔天数很大。
}
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance(); //操作时间的类。默认是设置当前时间。
cal.setTime(sdf.parse(arrivedate)); //设置时间
long time1 = cal.getTimeInMillis(); //把时间转换成毫秒。
System.out.println(time1);
cal.setTime(sdf.parse(balanceDate)); //设置时间
long time2 = cal.getTimeInMillis(); //把时间转换成毫秒。
System.out.println(time2);
//获取间隔天数
long intervalDays=Math.abs((time1-time2)/(1000*60*60*24));
return intervalDays;
}
/**
* 计算两个日期之间相差的天数
* @param smdate 较小的时间
* @param bdate 较大的时间
* @return 相差天数
* @throws ParseException
*/
public static int daysBetween(Date smdate,Date bdate) throws ParseException{
if(null==smdate || null==bdate){
return 999999;
}
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
smdate=sdf.parse(sdf.format(smdate)); //把日期转换成指定格式
bdate=sdf.parse(sdf.format(bdate)); //把日期转换成指定格式
Calendar cal = Calendar.getInstance(); //操作时间的类。默认是设置当前时间。
cal.setTime(smdate); //设置时间
long time1 = cal.getTimeInMillis(); //把时间转换成毫秒。
cal.setTime(bdate); //设置时间
long time2 = cal.getTimeInMillis(); //把时间转换成毫秒。
long between_days=Math.abs((time2-time1)/(1000*3600*24));
return Integer.parseInt(String.valueOf(between_days));
}
}
|