class Date1 { protected int days; public Date1(int day,int month,int year) throws DateException { if(month<1||month>12||day<1) throw new DateException(toString()); else if((month==4||month==6||month==9||month==11)&&day>30) throw new DateException(toString()); else if(month==2) { if(year%4==0) { if(day>29) throw new DateException(toString()); } else if(day>28) throw new DateException(toString()); } else if(day>31) throw new DateException(toString()); days=(year-1900)*365+(year-1901)/4; days+=day; if(month>=2) { days+=31; if(month>=3) { if(year%4==0&&year!=1900) days+=29; else days+=28; switch(month) { case 3: break; case 4: days+=31; break; case 5: days+=61; break; case 6: days+=92; break; case 7: days+=122; break; case 8: days+=153; break; case 9: days+=184; break; case 10: days+=214; break; case 11: days+=245; break; case 12: days+=275; } } } } public String toString() { int year=days/365; int day=days%365; int month; if(year!=0) day-=(year-1)/4; if(day<=0) { if((year-1)%4==0) day+=366; else day+=365; year--; } if(day<=31) month=1; else if(day<=59) { month=2; day-=31; } else if(year%4==0&&day==60&&year!=0) { month=2; day=29; } else { if(year%4==0&&year!=0) day-=60; else day-=59; if(day<=31) month=3; else if(day<=61) { month=4; day-=31; } else if(day<=92) { month=5; day-=61; } else if(day<=122) { month=6; day-=92; } else if(day<=153) { month=7; day-=122; } else if(day<=184) { month=8; day-=153; } else if(day<=214) { month=9; day-=184; } else if(day<=245) { month=10; day-=214; } else if(day<=275) { month=11; day-=245; } else { month=12; day-=275; } } year+=1900; return day+"/"+month+"/"+year; } public boolean lessThan(Date1 d) { return (days