java时间加减?日期时间计算加减JAVA-学知识-

java时间加减?日期时间计算加减JAVA

牵着乌龟去散步 学知识 1 0

大家好,如果您还对java时间加减不太了解,没有关系,今天就由本站为大家分享java时间加减的知识,包括日期时间计算加减JAVA的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

  1. 如何利用Java中的BigDecimal实现加减乘除功能
  2. 急求java编“加减乘除”功能的程序
  3. 求简单java写计算器代码加减乘除

一、如何利用Java中的BigDecimal实现加减乘除功能

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

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

publicclassArith{//默认除法运算精度

privatestaticfinalintDEF_DIV_SCALE=10;//这个类不能实例化

publicstaticdoubleadd(doublev1,doublev2){

BigDecimalb1=newBigDecimal(Double.toString(v1));

BigDecimalb2=newBigDecimal(Double.toString(v2));

returnb1.add(b2).doubleValue();

publicstaticdoublesub(doublev1,doublev2){

BigDecimalb1=newBigDecimal(Double.toString(v1));

BigDecimalb2=newBigDecimal(Double.toString(v2));

returnb1.subtract(b2).doubleValue();

publicstaticdoublemul(doublev1,doublev2){

BigDecimalb1=newBigDecimal(Double.toString(v1));

BigDecimalb2=newBigDecimal(Double.toString(v2));

returnb1.multiply(b2).doubleValue();

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

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

publicstaticdoublediv(doublev1,doublev2){

returndiv(v1,v2,DEF_DIV_SCALE);

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

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

publicstaticdoublediv(doublev1,doublev2,intscale){

thrownewIllegalArgumentException(

"Thescalemustbeapositiveintegerorzero");

BigDecimalb1=newBigDecimal(Double.toString(v1));

BigDecimalb2=newBigDecimal(Double.toString(v2));

returnb1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();

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

publicstaticdoubleround(doublev,intscale){

thrownewIllegalArgumentException("Thescalemustbeapositiveintegerorzero");

BigDecimalb=newBigDecimal(Double.toString(v));

BigDecimalone=newBigDecimal("1");

returnb.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();

二、急求java编“加减乘除”功能的程序

private double precision= 0.0001;//精准度

public static void main(String args []){

Calculator clerk=new Calculator();

System.out.println("请按格式输入符号空格数字");

System.out.println("例如:+ 3");

System.out.println("如果想结束输入e");

System.out.println("清零请按c");

clerk.handleArithmeticException(e);//抓住后调用 ***

catch(UnknownOpException e){//catch自定义异常

clerk.handleUnknownOpException(e);

System.out.println("最终的结果是"+clerk.getValue());

System.out.println("计算器计算结束");

public void setResult(double newResult){//setResult没用到

public void doCalculation() throws ArithmeticException,UnknownOpException

Scanner keyboard= new Scanner(System.in);

System.out.println("结果="+result);

nextOp=(keyboard.next()).charAt(0);//按位置返回字符

if((nextOp=='e')||(nextOp=='E'))

else if((nextOp=='c')||(nextOp=='c')){//按位置返回字符

System.out.println("结果已清0");

nextNumber=keyboard.nextDouble();

result=evaluate(nextOp,result,nextNumber);

System.out.println("结果"+ nextOp+""+nextNumber+"="+result);

System.out.println("最终的结果="+ result);

public double evaluate(char op,double n1,double n2) throws ArithmeticException,UnknownOpException

if((-precision<n2)&&(n2<precision))

throw new ArithmeticException(); answer=n1/n2;

throw new UnknownOpException("符号错误!!!");

public void handleArithmeticException(ArithmeticException e){//catch的调用 ***

System.out.println("出错了!!!被除数是0");

System.out.println("程序结束");

public void handleUnknownOpException(UnknownOpException e){

//System.out.println(e.getMessage());

System.out.println("清从新输入:");

System.out.println("请按格式输入符号空格数字");

System.out.println("例如:+ 3");

System.out.println("如果想结束输入e");

// System.out.println(e2.getMessage());

System.out.println("符号未知");

System.out.println("程序结束");

catch(ArithmeticException e3){

handleArithmeticException(e3);

class UnknownOpException extends Exception{//自定义无符号异常

public UnknownOpException(String o){

System.out.println(o+"没有这个符号");

你看看行不?程序设计的不是很好,但能实现+-*/

另一个小+-*/的程序,你自己再改改

public static void main(String[] args){//在编译时自带参数。类型强制转换

if(args.length<3){//命令行参数个数小于3

"Usage: java Test\"n1\"\"op\"\"n2\"");

System.exit(-1);//系统退出,-1表示非正常退出。0表示正常退出。

double d1= Double.parseDouble(args[0]);

double d2= Double.parseDouble(args[2]);

if(args[1].equals("+")) d= d1+d2;

else if(args[1].equals("-")) d= d1-d2;

else if(args[1].equals("x")) d= d1*d2;//*在这个程序里的cmd运行下有错误,所以用x

else if(args[1].equals("/")) d= d1/d2;

System.out.println("Error operator!");

三、求简单java写计算器代码加减乘除

应该相同吧,发个我写的,里面的图片没有,运行就不行了,看看重点部分的吧,参考下子

JFrame j1=new JFrame("计算器");

URL url=getClass().getResource("go.gif");

JLabel je=new JLabel(new ImageIcon(getClass().getResource("go1.jpg")));

Container c=j1.getContentPane();

JTextArea tf=new JTextArea(s);

JLabel ja=new JLabel(s2="之一次尝试,OK!");

JButton b1=new JButton(new ImageIcon(getClass().getResource("1.jpg")));

JButton b2=new JButton(new ImageIcon(getClass().getResource("2.jpg")));

JButton b3=new JButton(new ImageIcon(getClass().getResource("3.jpg")));

JButton b4=new JButton(new ImageIcon(getClass().getResource("4.jpg")));

JButton b5=new JButton(new ImageIcon(getClass().getResource("5.jpg")));

JButton b6=new JButton(new ImageIcon(getClass().getResource("6.jpg")));

JButton b7=new JButton(new ImageIcon(getClass().getResource("7.jpg")));

JButton b8=new JButton(new ImageIcon(getClass().getResource("8.jpg")));

JButton b9=new JButton(new ImageIcon(getClass().getResource("9.jpg")));

JButton ba=new JButton(new ImageIcon(getClass().getResource("10.jpg")));

JButton bb=new JButton(new ImageIcon(getClass().getResource("12.jpg")));

JButton bc=new JButton(new ImageIcon(getClass().getResource("13.jpg")));

JButton bd=new JButton(new ImageIcon(getClass().getResource("11.jpg")));

JButton bf=new JButton(new ImageIcon(getClass().getResource("15.jpg")));

JButton bg=new JButton(new ImageIcon(getClass().getResource("16.jpg")));

JButton bh=new JButton(new ImageIcon(getClass().getResource("14.jpg")));

Toolkit kit=Toolkit.getDefaultToolkit();

Image im=kit.createImage(getClass().getResource("图标.gif"));

tf.setBackground(Color.BLACK);

c.setLayout(new BorderLayout());

c.setBackground(Color.WHITE);

j1.setBounds(514,78,545,370);

JLabel l=new JLabel(ic,JLabel.CENTER);

l.setFont(new Font("计算器",Font.BOLD,40));

j1.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

c.setBackground(new Color(226,235,244));

tf.setFont(new Font(s+p+s1,Font.BOLD,23));

tf.setForeground(Color.orange);

ja.setForeground(Color.YELLOW);

ja.setFont(new Font(s2,Font.BOLD,15));

p2.setLayout(new GridLayout(3,1,0,0));

p2.setBackground(Color.BLACK);

p1.setBorder(BorderFactory.createLineBorder(new Color(197,215,235),5));

p2.setBorder(BorderFactory.createLineBorder(Color.YELLOW, 5));

b1.addActionListener(new action1());

b2.addActionListener(new action1());

b3.addActionListener(new action1());

b4.addActionListener(new action1());

b5.addActionListener(new action1());

b6.addActionListener(new action1());

b7.addActionListener(new action1());

b8.addActionListener(new action1());

b9.addActionListener(new action1());

ba.addActionListener(new action1());

bb.addActionListener(new action1());

bc.addActionListener(new action1());

bd.addActionListener(new action1());

bf.addActionListener(new action1());

bg.addActionListener(new action1());

p1.setLayout(new GridLayout(4,4,0,0));

bh.addFocusListener(new FocusListener(){

public void focusLost(FocusEvent d){

ja.setText("请依次输入数值!");

public void focusGained(FocusEvent d){

bh.addActionListener(new action());

class action1 implements ActionListener{

public void actionPerformed(ActionEvent e){

s1=s1+"1";tf.setText(s+p+s1);}

s1=s1+"3";tf.setText(s+p+s1);}}

s1=s1+"5";tf.setText(s+p+s1);}

s1=s1+"6";tf.setText(s+p+s1);}

s1=s1+"7";tf.setText(s+p+s1);}

s1=s1+"8";tf.setText(s+p+s1);}

s1=s1+"9";tf.setText(s+p+s1);}

{ s1=s1+"0";tf.setText(s+p+s1);}

case'+':n=rt+re;s=String.valueOf(n);tf.setText(s+"+");break;

case'-':n=re-rt;s=String.valueOf(n);tf.setText(s+"+");break;

case'*':n=rt*re;s=String.valueOf(n);tf.setText(s+"+");break;

case'/':n=re/rt;s=String.valueOf(n);tf.setText(s+"+");break;

{ s="0";ja.setText("请正确输入之一个数!");}

case'+':n=rt+re;s=String.valueOf(n);tf.setText(s+"-");break;

case'-':n=re-rt;s=String.valueOf(n);tf.setText(s+"-");break;

case'*':n=rt*re;s=String.valueOf(n);tf.setText(s+"-");break;

case'/':n=re/rt;s=String.valueOf(n);tf.setText(s+"-");break;

{s="0";ja.setText("请输入之一个数!");}

case'+':n=rt+re;s=String.valueOf(n);tf.setText(s+"*");break;

case'-':n=re-rt;s=String.valueOf(n);tf.setText(s+"*");break;

case'*':n=rt*re;s=String.valueOf(n);tf.setText(s+"*");break;

case'/':n=re/rt;s=String.valueOf(n);tf.setText(s+"*");break;

ja.setText("请输入之一个数!");

case'+':n=rt+re;s=String.valueOf(n);tf.setText(s+"/");break;

java时间加减?日期时间计算加减JAVA-第1张图片-

case'-':n=re-rt;s=String.valueOf(n);tf.setText(s+"/");break;

case'*':n=rt*re;s=String.valueOf(n);tf.setText(s+"/");break;

case'/':n=re/rt;s=String.valueOf(n);tf.setText(s+"/");break;

ja.setText("请正确输入之一个数!");}

class action implements ActionListener{

public void actionPerformed(ActionEvent e){

ja.setText("请重新输入之一个数!");}

case'+':n=rt+re; tf.setText(s+p+s1+"="+n);break;

case'-':n=re-rt; tf.setText(s+p+s1+"="+n);break;

case'*':n=rt*re; tf.setText(s+p+s1+"="+n);break;

case'/':n=re/rt;if(rt==0){ tf.setText(s+p+s1+"="+"无效结果");}else tf.setText(s+p+s1+"="+n);break;

default:s2="您的输入有误!";}

public static void main(String args[]){

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

标签: 时间 java 日期 计算

抱歉,评论功能暂时关闭!