📄 jisuanqi.java
字号:
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 + -