-
Notifications
You must be signed in to change notification settings - Fork 13
/
SwitchExample2.java
80 lines (62 loc) · 1.77 KB
/
SwitchExample2.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
package lessons.flowcontrol.switchcase;
public class SwitchExample2 {
public static void main(String[] args)
{
run();
}
public static void run()
{
java.util.Scanner kb = new java.util.Scanner(System.in);
for (;;) {
System.out.print("day:");
int day = kb.nextInt();
System.out.print("month:");
int month = kb.nextInt();
System.out.print("year:");
int year = kb.nextInt();
if (day == 0)
break;
System.out.println("------------------------");
if (isValidDate(day, month, year))
System.out.printf("%02d/%02d/%d is Valid Date%n", day, month, year);
else
System.out.println("invalid date");
System.out.println("------------------------");
}
}
public static boolean isValidDate(int day, int month, int year)
{
return 1 <= day && day <= 31 && 1 <= month && month <= 12 && day <= getDays(month, year);
}
public static int getDays(int month, int year)
{
int day = 31;
switch (month) {
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
day = 28;
if (isLeapYear(year))
++day;
}
/*
switch (month) {
case 4, 6, 9, 11 -> day = 30;
case 2 -> {
day = 28;
if (isLeapYear(year))
++day;
}
}
*/
return day;
}
public static boolean isLeapYear(int year)
{
return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
}
}