⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jisuanqi.java

📁 java 简易计算器.除了可以进行科学运算外还可以进行日期的减法运算.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                         cp.result3=Double.parseDouble(cp.text.getText());
                         cp.result2=count(cp.result2,cp.result3,cp.command2);
                         cp.command2=str;
                         if(cp.command2=="*")
                         { 
                      	   cp.text.setText(""+cp.result2);
                      	   cp.flag1=false;
                         cp.start1=true;
                         return;
                         }
                         if(cp.command2=="=")
                         {
                              cp.result1=count(cp.result1,cp.result2,cp.command1); 
                              cp.text.setText(""+cp.result1);
                               cp.start1=true;
                              cp.start2=true;
                          }
                         else
                         {
                            cp.result1=count(cp.result1,cp.result2,cp.command1); 
                              cp.text.setText(""+cp.result1);
                             cp.flag1=true;
                         }
                         cp.start1=true;
                     }               
                 }
             }
            if(cp.flag2)
             {
                // String str=e.getActionCommand();
          	 
                 if(cp.start2)
                
                  {  cp.date1=cp.text.getText();
                    cp.start1=true;
                    cp.start2=false;
                 
                  }
                   else
                   {
              	  cp.date2=cp.text.getText();
              	   cp.text.setText(dBD(cp.date1,cp.date2));
              	     cp.start1=true;
              	   cp.flag2=false;
              	   cp.start1=true;
              	   cp.start2=true;
              	  }
             }
       
             }
             
             
             
           }
       }
  private class Command1 implements ActionListener 
       {
           
            public void actionPerformed(ActionEvent e)
           {
               
               if(!flag2)
               {
                   if(start2)
                   {
                   String st1=e.getActionCommand();
                   result1=Double.parseDouble(text.getText());
                   command1=st1;
                   start2=false;
                   start1=true;
                   flag1=true;
                    }
                   else{
                     if(flag1)
                      {
                       result2=Double.parseDouble(text.getText());
                       String st1=e.getActionCommand();
                       command2=st1;
                        if(command2=="=")
                       { 
                        	
                           text.setText(""+count(result1,result2,command1));
                          result2=0;
                            start1=true;
                            flag1=true;
                            start2=true;
                          // return;
                        }
                      else if(command2=="+"||command2=="-"||command1=="×"||command1=="÷")
                       {
                           result1=count(result1,result2,command1);
                           text.setText(""+result1);
                           command1=command2;
                           start1=true;
                           flag1=true;
                       }
                      
                     
                     else  if((command2=="×"||command2=="÷")&&(command1=="+"||command1=="-"))
                       {
                           flag1=false;
                           start1=true;
                           return;
                       }
                   }
                   if(!flag1)
                   {
                       String st6=e.getActionCommand();
                       result3=Double.parseDouble(text.getText());
                       result2=count(result2,result3,command2);
                       command2=st6;
                       if(command2=="×"||command2=="÷")
                       { 
                    	   text.setText(""+result2);
                    	   flag1=false;
                       start1=true;
                       return;
                       }
                       if(command2=="=")
                       {
                            result1=count(result1,result2,command1); 
                            text.setText(""+result1);
                             start1=true;
                            start2=true;
                        }
                       else
                       {
                          result1=count(result1,result2,command1); 
                            text.setText(""+result1);
                           flag1=true;
                       }
                       start1=true;
                   }               
               }
           }
          if(flag2)
           {
               String str=e.getActionCommand();
        	 
               if(start2)
              
                {  date1=text.getText();
                  start1=true;
                  start2=false;
               
                }
                 else
                 {
            	  date2=text.getText();
            	   text.setText(dBD(date1,date2));
            	     start1=true;
            	   flag2=false;
            	   start1=true;
            	   start2=true;
            	  }
           }
     
    }
    }

      public static String dBD(String s1,String s2)
     {   
  	   int y1;int m1;int d1;
  	   int y2;int m2;int d2;
  	   int l1;
  	   boolean b1;boolean b2;
  	   l1=s1.length();
  	   int l2=s2.length();
  	  d1=Integer.parseInt(s1.substring(l1-2,l1));
  	  m1=Integer.parseInt(s1.substring(l1-5,l1-3));
  	   y1=Integer.parseInt(s1.substring(0,l1-6));
  	   d2=Integer.parseInt(s2.substring(l2-2,l2));
  	   m2=Integer.parseInt(s2.substring(l2-5,l2-3));
  	   y2=Integer.parseInt(s2.substring(0,l2-6));
  	   b1=isDate(y1,m1,d1);
  	   b2=isDate(y2,m2,d2);
  		 if(b1&&b2)
  		 { int re=day(y1,m1,d1)-day(y2,m2,d2);
  		 return (""+re);
  		 }
  		 else return("E");
  		
  	   	}
     public static boolean isDate(int y1,int m1,int d1)
     {
  	   boolean b=false;
  	   if(y1>0&&m1>0&&m1<=12&&d1>0)
  	   {
  		   if(m1!=2)
  		   {
  		   if((m1==1||m1==3||m1==5||m1==7||m1==8||m1==10||m1==12)&&d1<=31)
  			   b=true;
  		   else if((m1==4||m1==6||m1==9||m1==11)&&d1<=30)
  			   b=true;
  		   else b=false;
  		   }
  		   else 
  		   {
  			   if(((y1%4==0)&&(y1%100!=0))||(y1%400==0))
  			   {
  			   if(d1<=29)
  				   b=true;
  		   }
  			   else if (d1<=28)
  				   b=true;
  		   }
  		 //  else b=false;
  	   }
  	   return b;
     }
     
     
     public static int day(int y,int m,int d)
     {
  	   int a; int b;
  	   int c; int e = 0;
  	   int mDays[]={0,31,29,31,30,31,30,31,31,30,31,30};
  	   a=y/4;
  	   b=y/400;
  	   c=y/100;
  	   for(int i=0;i<m;i++)
  		   e+=mDays[i];
  	   if(((y%4==0)&&(y%100!=0))||(y%400==0))
  	   return 365*(y-1)+a-b+c+e+d;
  	   else return 
  	   365*(y-1)+a-b+c+e+d-1;
     }


    	   
               
         public double count(double d1,double d2,String s)
         {
        	 double res = 0;
        
             if(s=="+")
             res=d1+d2;
             if(s=="-")
            	 res=d1-d2;
             if(s=="×")
            	 res=d1*d2;
             if(s=="÷")
             
            	 res=d1/d2;
            
			return res;
           }           
       
   
           
         private   class Command2 implements ActionListener
       {
           public void actionPerformed(ActionEvent e)
           {
               String st=e.getActionCommand();
               double result=Double.parseDouble(text.getText());
               start1=true;
               if(st=="sin")
               result=Math.sin(result/180.0*Math.PI);
               if(st=="cos")
               result=Math.cos(result/180.0*Math.PI);
               if(st=="tan")
               result=Math.tan(result/180.0*Math.PI);
               if(st=="x*x")
               result=result*result;
               if(st=="ln")
               result=Math.log(result);
               if(st=="sqrt")
               result=Math.sqrt(result);
               if(st=="1/x")
               {if(result==0)
                   text.setText("NaN");
                   else
               result=1/result;
            }
               if(st=="+/-")
               result=-1*result;
               text.setText(""+result);
            
           }
       }  
}

    
           
           
           
           
           
           
           
           
           
           

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -