Repository navigation
Expand file tree
/
Copy pathDTSTART_END.java
More file actions
173 lines (150 loc) · 4.55 KB
/
Copy pathDTSTART_END.java
File metadata and controls
173 lines (150 loc) · 4.55 KB
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class DTSTART_END {
private JFrame frame;
private JTextField dStart;
private JTextField dEnd;
private JTextField tStart;
private JTextField tEnd;
public DTSTART_END()
{
Start();
}
public static void main(String[] args) {
new DTSTART_END();
}
private void Start()
{
frame = new JFrame();
frame.setBounds(100, 100, 500, 500);
frame.setLayout(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
JLabel start_label = new JLabel("Start Date and Time: ");
start_label.setBounds(20, 20, 200, 23);
frame.add(start_label);
JLabel end_label = new JLabel("End Date and Time: ");
end_label.setBounds(20, 60, 200, 23);
frame.add(end_label);
dStart = new JTextField();
dStart.setToolTipText("mm/dd/yyyy");
dStart.setBounds(150, 20, 100, 23);
dStart.setColumns(10);
frame.add(dStart);
dEnd = new JTextField();
dEnd.setToolTipText("mm/dd/yyyy");
dEnd.setBounds(150, 60, 100, 23);
dEnd.setColumns(10);
frame.add(dEnd);
tStart = new JTextField();
tStart.setToolTipText("hh:mm:ss");
tStart.setBounds(300, 20, 100, 23);
frame.add(tStart);
tEnd = new JTextField();
tEnd.setToolTipText("hh:mm:ss");
tEnd.setBounds(300, 60, 100, 23);
frame.add(tEnd);
JLabel startTip = new JLabel("Ex: 03/08/2015");
startTip.setBounds(160, 40, 200, 23);
frame.add(startTip);
JLabel endTip = new JLabel("Ex: 13:55:00");
endTip.setBounds(310, 40, 200, 23);
frame.add(endTip);
JButton submit = new JButton("Sumbit");
submit.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String error = "";
String sStart = dStart.getText()+" "+tStart.getText();
String sEnd = dEnd.getText()+" "+tEnd.getText();
if(!checkDate(sStart))
{
error = "Invalid Start Date and Time\n";
}
if(!checkDate(sEnd))
{
error += "Invalid End Date and Time\n";
}
if(!error.equals(""))
{
JOptionPane.showMessageDialog(null, error);
return;
}
if(compareDateTime(sStart, sEnd) > 0)
{
error += "Start Date/Time can't be greater than End Date/Time";
}
if(!error.equals(""))
{
JOptionPane.showMessageDialog(null, error);
return;
}
System.out.println(convertDateTime(dStart.getText(), tStart.getText()));
System.out.println(convertDateTime(dEnd.getText(), tEnd.getText()));
}
});
submit.setBounds(150, 300, 200, 23);
frame.add(submit);
}
//check user input is valid or not
//parameter- date[String]: include date and time of start/end
//return- check[boolean]: true if date is valid, false otherwise
public boolean checkDate(String date)
{
boolean check = true;
SimpleDateFormat formateDate = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
try {
Date d = formateDate.parse(date);
if(!date.equals(formateDate.format(d)))
{
check = false;
System.out.println("Formate Error. Please try again");
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
check = false;
}
return check;
}
//compare the date/time for start and end
//parameter- start[String]: include date and time of start date/time
//parameter- end[String]: include date and time of end date/time
//return- check[int]: greater than 0 is invalid
public int compareDateTime(String start, String end)
{
int check = 0;
try {
Date dtStart = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse(start);
Date dtEnd = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse(end);
check = dtStart.compareTo(dtEnd);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return check;
}
//convert date and time to ics file format
//parameter- date[String] : taken from text filed string of Start/End
//parameter- time[String] : taken from text filed string of Start/End
//return- result[String] : date and time in .ics file format
public String convertDateTime(String date, String time)
{
String result = "";
String[] tempDate = date.split("/");
String[] tempTime = time.split(":");
result = tempDate[2] + tempDate[0] + tempDate[1] + "T" + tempTime[0] + tempTime[1] + tempTime[2];
return result;
}
}