Khi mình nhập ngày sai tháng đúng , năm đúng thì cho mình nhập lại
còn mình nhập ngày đúng , tháng sai thì nó báo lỗi
mình tìm mãi ko biết lỗi
import java.util.Scanner;
public class Ngay_Thang_Nam
{
private int ngay, thang , nam ;
public Ngay_Thang_Nam( int NGAY, int THANG , int NAM)
{
this.ngay = NGAY ;
this.thang = THANG ;
this.nam = NAM ;
}
public Ngay_Thang_Nam()
{
this.ngay = 1 ;
this.thang = 1 ;
this.nam = 1 ;
}
public Ngay_Thang_Nam(Ngay_Thang_Nam a)
{
this.ngay = a.ngay ;
this.thang = a.thang ;
this.nam = a.nam ;
}
public boolean HopLe()
{
boolean dk = true;
int dayMax[] = {-1,31,28,31,30,31,30,31,30,31,30,31,30};
if(( nam % 4 ) == 0 &&( nam % 100 ) != 0 && (nam % 400) == 0)
dayMax[2]=29;
if( ngay < 1 || ngay > dayMax[thang] || thang < 1 || thang > 12 || nam < 1)
{
return dk = false ;
}
return dk;
}
public Ngay_Thang_Nam ngayhomsau()
{
Ngay_Thang_Nam d = new Ngay_Thang_Nam(this);
d.ngay++;
if(d.HopLe() == false)
{
d.ngay = 1 ;
d.thang = d.thang + 1 ;
}
if(d.HopLe() == false)
{
d.thang = 1;
d.nam++ ;
}
return d ;
}
public void set1()
{
Scanner sc = new Scanner(System.in);
do
{
System.out.println("Nhap vao ngay ");
ngay = sc.nextInt();
System.out.println("Nhap vao thang ");
thang = sc.nextInt();
System.out.println("Nhap vao nam ");
nam = sc.nextInt();
}
while(HopLe()==false);
}
public void get1()
{
System.out.println(ngay+"/"+thang+"/"+nam);
}
}
Đây là hàm main
public class test_contructor
{
public static void main(String[] args)
{
Ngay_Thang_Nam Date = new Ngay_Thang_Nam();
Date.set1();
Date.get1();
Date = Date.ngayhomsau();
Date.get1();
}
}