QUESTION
Write a program to perform the following functions:
1. To check whether year entered by user is leap year or not.
2. To check whether a date entered by user is valid or not dd-mm-yyyy
3. To display the future date after 'n' days.
CODE:
Write a program to perform the following functions:
1. To check whether year entered by user is leap year or not.
2. To check whether a date entered by user is valid or not dd-mm-yyyy
3. To display the future date after 'n' days.
CODE:
import java.io.*; //Header file to import java.io package
class Date
{ //Start of class
int dd,mm,yy; // variables to store the date,moth and year
Date()
{ //Default constructor to assign values to zero
dd=0;
mm=0;
yy=0;
}
void input()throws IOException
{ //To input the date,month and year
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter day :");
dd=Integer.parseInt(br.readLine());
System.out.println("Enter month :");
mm=Integer.parseInt(br.readLine());
System.out.println("Enter year :");
yy=Integer.parseInt(br.readLine());
}
int leap(int y)
{ // Function t check whether year entered is leap year or not
if(y%100!=0)
{
if(y%4==0)
return(1);
else
return(0);
}
if(y%400==0) //Condition for millennium year
return(1);
else
return(0);
}
int check(Date d)
{ // Check whether the date entered is valid or not
if(d.mm>=1 && d.mm<=12)
{
if(d.mm==2)
{
int y1=leap(d.yy);
if(y1==1)
{
if(d.dd>=1 && d.dd<=29)
return(1);
else
return(0);
}
else
{
if(d.dd>=1 && d.dd<=28)
return(1);
else
return(0);
}
}
if(d.mm>=1 && d.mm<=7)
{
if(d.mm%2!=0)
{
if(d.dd>=1 && d.dd<=31)
return(1);
else
return(0);
}
else
{
if(d.dd>=1 && d.dd<=30)
return(1);
else
return(0);
}
}
if(d.mm>=8 && d.mm <=12)
{
if(d.mm%2==0)
{
if(d.dd>=1 && d.dd<=31)
return(1);
else
return(0);
}
else
{
if(d.dd>=1 && d.dd<=30)
return(1);
else
return(0);
}
}
else
return(0);
}
else
return(0);
}
Date futureDate(int n)
{ // To calculate the date after 'n' days
int months[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
System.out.println(dd+"/"+mm+"/"+yy);
while((months[mm]-dd) <= n)
{
n=n-(months[mm]-dd);
dd=0;
mm++;
if(mm>12)
{
mm=1;
yy++;
}
}
System.out.println(dd);
dd+=n;
Date obj=new Date();
obj.dd=dd;
obj.mm=mm;
obj.yy=yy;
return(obj);
}
public static void main(String Args[])throws IOException
{ // Start of main function
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
Date ob=new Date(); // Creating object of class
ob.input(); // Input the date
int res1=ob.leap(ob.yy); // Returns whether year entered is leap or not
int res2=ob.check(ob);
if(res2==0)
{ // Returns 0 when date is invalid
System.out.println("Invalid Date");
}
else
{
System.out.println("Enter no. of days:");
int num=Integer.parseInt(in.readLine());
Date ob1=ob.futureDate(num);
System.out.println(ob1.dd+"/"+ob1.mm+"/"+ob1.yy); //Displays date after 'n' days
}
System.out.println("Leap year '1' or '0' :"+res1);
System.out.println("Valid date '1' or '0':"+res2);
} // End of main function
} //End of class
No comments:
Post a Comment