“不过我不会给分”,太抠门了。哈哈。public class mydata {
int y, m, d;
mydata(int y1, int m1, int d1) {
y = y1;
m = m1;
d = d1;
} mydata() {
y = 1900;
m = 1;
d = 1;
} public boolean equals(mydata x) {
return (y == x.y && m == x.m && d == x.d);
} public int compareto(mydata w) {
int yy1, yy2, mm1, mm2, dd1, dd2;
int a, s = dd2 - dd1; // <---- dd2和dd1在使用之前都没有初始化
if (y <= w.y) {
yy1 = y;
yy2 = w.y;
mm1 = m;
mm2 = w.m;
dd1 = d;
dd2 = w.d;
}
else {
yy2 = y;
yy1 = w.y;
mm2 = m;
mm1 = w.m;
dd2 = d;
dd1 = w.d;
}
for (int x = yy1; x <= yy2; x++) {
for (int i = 1; i <= 12; i++) {
if (x <= yy1 && i <= mm1) {
continue;
}
if (x >= yy2 && i >= mm2) {
continue;
}
if (x <= yy2 && i < mm2) {
if (x % 4 == 0 && x % 100 == 0 && x % 400 == 0) {
switch (i) {
case 2:
a = 29;
s += a;
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
a = 31;
s += a;
break;
case 4:
case 6:
case 9:
case 11:
a = 30;
s += a;
break;
}
}
else {
switch (i) {
case 2:
a = 28;
s += a;
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
a = 31;
s += a;
break;
case 4:
case 6:
case 9:
case 11:
a = 30;
s += a;
break;
}
}
}
}
}
return s;
} public static void main(String args[]) {
y = integer.parseint(args[0]);
//y不是静态变量,不能这样用法。后面的m和d,情况相同。
//integer是类名,类名首字母一般为大写,以下几行情况相同。
//应该这样写:
/*
mydata md= new mydata();
md.y=Integer.parseInt(args[0]);
......
*/
integer.parseint(m = args[1]);
integer.parseint(d = args[2]);
//以上两行,m、d是int类型,args[]是String类型,不能这样赋值。
mydata wt = new mydata();
System.out.println(wt.compareto(integer.parseint(args[3]),
integer.parseint(args[4]),
integer.parseint(args[5])));
}
} //这里还少了一个“}”
int y, m, d;
mydata(int y1, int m1, int d1) {
y = y1;
m = m1;
d = d1;
} mydata() {
y = 1900;
m = 1;
d = 1;
} public boolean equals(mydata x) {
return (y == x.y && m == x.m && d == x.d);
} public int compareto(mydata w) {
int yy1, yy2, mm1, mm2, dd1, dd2;
int a, s = dd2 - dd1; // <---- dd2和dd1在使用之前都没有初始化
if (y <= w.y) {
yy1 = y;
yy2 = w.y;
mm1 = m;
mm2 = w.m;
dd1 = d;
dd2 = w.d;
}
else {
yy2 = y;
yy1 = w.y;
mm2 = m;
mm1 = w.m;
dd2 = d;
dd1 = w.d;
}
for (int x = yy1; x <= yy2; x++) {
for (int i = 1; i <= 12; i++) {
if (x <= yy1 && i <= mm1) {
continue;
}
if (x >= yy2 && i >= mm2) {
continue;
}
if (x <= yy2 && i < mm2) {
if (x % 4 == 0 && x % 100 == 0 && x % 400 == 0) {
switch (i) {
case 2:
a = 29;
s += a;
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
a = 31;
s += a;
break;
case 4:
case 6:
case 9:
case 11:
a = 30;
s += a;
break;
}
}
else {
switch (i) {
case 2:
a = 28;
s += a;
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
a = 31;
s += a;
break;
case 4:
case 6:
case 9:
case 11:
a = 30;
s += a;
break;
}
}
}
}
}
return s;
} public static void main(String args[]) {
y = integer.parseint(args[0]);
//y不是静态变量,不能这样用法。后面的m和d,情况相同。
//integer是类名,类名首字母一般为大写,以下几行情况相同。
//应该这样写:
/*
mydata md= new mydata();
md.y=Integer.parseInt(args[0]);
......
*/
integer.parseint(m = args[1]);
integer.parseint(d = args[2]);
//以上两行,m、d是int类型,args[]是String类型,不能这样赋值。
mydata wt = new mydata();
System.out.println(wt.compareto(integer.parseint(args[3]),
integer.parseint(args[4]),
integer.parseint(args[5])));
}
} //这里还少了一个“}”
谢谢大家的帮忙 程序我改了改现在还有一个错误!大家看看 再帮忙找找!谢
public class mydata
{
int y,m,d;
mydata(int y1,int m1,int d1)
{
y=y1;
m=m1;
d=d1;
}
mydata()
{
y=1900;
m=1;
d=1;
}
public boolean equals(mydata x){return(y==x.y&&m==x.m&&d==x.d);}
public int compareto(mydata w)
{
int yy1,yy2,mm1,mm2,dd1,dd2;
int a,s;
if(y<=w.y)
{
yy1=y;
yy2=w.y;
mm1=m;
mm2=w.m;
dd1=d;
dd2=w.d;
}
else
{
yy2=y;
yy1=w.y;
mm2=m;
mm1=w.m;
dd2=d;
dd1=w.d;
}
s=dd2-dd1;
for(int x=yy1;x<=yy2;x++)
for(int i=1;i<=12;i++)
{
if(x<=yy1&&i<=mm1) continue;
if(x>=yy2&&i>=mm2) continue;
if(x<=yy2&&i<mm2)
{
if(x%4==0&&x%100==0&&x%400==0)
{
switch(i){
case 2: a= 29;s+=a;break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:a=31;s+=a;break;
case 4:
case 6:
case 9:
case 11:a=30;s+=a;break;}
}
else
{
switch(i){
case 2: a= 28;s+=a;break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:a=31;s+=a; break;
case 4:
case 6:
case 9:
case 11:a=30;s+=a;break;
}}
}
}
return s;
}
public static void main(String args[])
{
mydata wt=new mydata(Integer.parseInt(args[0]),Integer.parseInt(args[1]),Integer.parseInt(args[2]));
int ss=wt.compareto(Integer.parseInt(args[3]),Integer.parseInt(args[4]),Integer.parseInt(args[5]));
System.out.println(ss);
}
}