Sunday, 9 November 2014

To input a date in six digit number format and print the date in full form

// To input a date in six digit number format and print the date in full form
// ISC-Specimen 2010
import java.util.* ;
class Date1 {
static int isLeap(int y){
if((y%4==0 && y%100!=0)|| y%400==0) return 1;
return 0;
}
static boolean isValid(int d,int m,int y) // checks the validity of a date
{
int daysOfMonth[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
daysOfMonth[2]+=isLeap(y);
if(m<1 || m>12) return false;
int n=daysOfMonth[m];
if(d<1 || d>n) return false;
return true;
}
static void printDate(int dd,int mm,int yy){
String monthOfYear[]={"","January","February","March","April","May","June","July","August",
"September","October","November","December"};
String suffix,date;
if(dd%10==1) suffix="st "; // for days that end with 1
else if(dd%10==2) suffix="nd "; // for days that end with 2
else if(dd%10==3) suffix="rd "; // for days that end with 3
else suffix="th "; // for other days
if(dd>10 && dd<14) suffix="th "; // for days 11, 12, and 13
date=dd+suffix+monthOfYear[mm]+" "+yy; // storing date in full form
System.out.println(date);
}
public static void main(String args []) throws Exception {
Scanner sc=new Scanner(System.in);
int date,i,dd,mm,yy;
System.out.println("INPUT:");
date=sc.nextInt();
System.out.println("\nOUTPUT:");
yy=date%100; // extract year
mm=(date/100)%100; // extract month
dd=((date/100)/100)%100; // extract day
if(!isValid(dd,mm,yy)) {
System.out.println("INVALID DATE");
System.exit(0);
}
printDate(dd,mm,yy);
System.out.println("VALID DATE");
} // end of main
} // end of class

No comments:

Post a Comment