-
Notifications
You must be signed in to change notification settings - Fork 0
/
GetWeekDayName.java
131 lines (117 loc) · 2.61 KB
/
GetWeekDayName.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package com.javamultiplex.datetime;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
/**
*
* @author Rohit Agarwal
* @category Date and Time
* @problem How to get day name of given date?
*
*/
public class GetWeekDayName {
public static void main(String[] args) {
Scanner input=null;
try
{
input=new Scanner(System.in);
System.out.println("Enter date in dd/MM/yyyy format :");
String date=input.next();
//If Date is valid, converting String to Date
Date mydate=getValidDate(date);
if(mydate!=null)
{
//Creating Calendar class instance.
Calendar calendar=Calendar.getInstance();
//Converting Date to Calendar.
calendar.setTime(mydate);
int dayofWeek=calendar.get(Calendar.DAY_OF_WEEK);
String dayName=getDayName(dayofWeek);
System.out.println("Day : "+dayName);
}
else
{
System.out.println("Date is invalid.");
}
}
finally
{
if(input!=null)
{
input.close();
}
}
}
private static Date getValidDate(String date) {
Date mydate=null;
if(isValidDateFormat(date))
{
/*
* d -> Day of month
* M -> Month of year
* y -> Year
*/
DateFormat dateFormat=new SimpleDateFormat("dd/MM/yyyy");
/*
* By default setLenient() is true.
* We should make it false for strict date validations.
*
* If setLenient() is true - It accepts all dates.
* If setLenient() is false - It accepts only valid dates.
*/
dateFormat.setLenient(false);
try {
mydate=dateFormat.parse(date);
} catch (ParseException e) {
mydate=null;
}
}
return mydate;
}
private static String getDayName(int dayofWeek) {
String dayName=null;
switch(dayofWeek)
{
case 1:
dayName="Sunday";
break;
case 2:
dayName="Monday";
break;
case 3:
dayName="Tuesday";
break;
case 4:
dayName="Wednesday";
break;
case 5:
dayName="Thursday";
break;
case 6:
dayName="Friday";
break;
case 7:
dayName="Saturday";
break;
}
return dayName;
}
private static boolean isValidDateFormat(String date) {
/*
* Regular Expression that matches String with format dd/MM/yyyy.
* dd -> 01-31
* MM -> 01-12
* yyyy -> 4 digit number
*/
String pattern="(0?[1-9]|[12][0-9]|3[01])\\/(0?[1-9]|1[0-2])\\/([0-9]{4})";
boolean result=false;
if(date.matches(pattern))
{
result=true;
}
return result;
}
}