Write a program to input a date in ddmmyyyy 8 digit format and print it in 1) dd / mm / yyyy format 2) dd, month name , yyyy format.
import java.util.*;
public class DateFormat {
int[] d = new int[3];
private final int[] DAY_COUNT = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
private final String[] MONTH_NAME = {
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October",
"November", "December"
};
void input() {
Scanner sc = new Scanner(System.in);
System.out.print("Enter date as 'ddmmyyyy': ");
String date = sc.next();
if (date.length() != 8) {
System.out.println("Invalid Input Format");
System.exit(-1);
}
d[0] = Integer.parseInt(date.substring(0, 2));
d[1] = Integer.parseInt(date.substring(2, 4));
d[2] = Integer.parseInt(date.substring(4, 8));
sc.close();
}
boolean validate() {
if (d[0] < 1 || d[2] < 1 || d[1] < 1 || d[1] > 12)
return false;
if (d[1] == 2 && d[2] % 4 == 0 && d[0] == 29) // leap yaer condition
return true;
else if (d[0] > DAY_COUNT[d[1] - 1])
return false;
return true;
}
void show() {
if (!validate()) {
System.out.println("Invalid Date");
return;
}
System.out.printf("%d/%d/%d\n", d[0], d[1], d[2]);
System.out.printf("%d %s, %d\n", d[0], MONTH_NAME[d[1] - 1], d[2]);
}
public static void main(String[] args) {
DateFormat a = new DateFormat();
a.input();
a.show();
}
}
Name | Type | Uses |
---|---|---|
global | ||
d | int[] | Integer array of size 3 to store date |
DAY_COUNT | int[] | Stores the number of days of 12 months of the year |
MONTH_NAME | String[] | Name of the 12 months of the year |
void main() | ||
a | DateFormat | Object to call its methods |
void input() | ||
sc | Scanner | to take user input |
date | String | to store enetered date |