Skip to content

Commit 1cddecd

Browse files
#19 java
1 parent b6d13d9 commit 1cddecd

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
import java.util.Arrays;
2+
import java.util.Scanner;
3+
4+
/**
5+
* #19 ENUMERACIONES
6+
*
7+
* @author martinbohorquez
8+
*/
9+
public class martinbohorquez {
10+
11+
public static void main(String[] args) {
12+
System.out.println("Ingresar el número de semana que desea consultar(1 al 7):");
13+
Scanner sc = new Scanner(System.in);
14+
printDayOfWeek(sc.nextInt());
15+
16+
/*
17+
* DIFICULTAD EXTRA: Crea un pequeño sistema de gestión del estado de pedidos.
18+
*/
19+
Order order1 = new Order(1);
20+
order1.deliver();
21+
order1.ship();
22+
order1.deliver();
23+
order1.cancel();
24+
Order order2 = new Order(2);
25+
order2.ship();
26+
order2.cancel();
27+
order2.deliver();
28+
}
29+
30+
private static void printDayOfWeek(Integer dayNumber) {
31+
String day = Arrays.stream(DayWeek.values())
32+
.filter(d -> d.getNumberDay().equals(dayNumber))
33+
.map(Enum::name)
34+
.findFirst()
35+
.orElse("No existe un día para el número escogido. Debe escoger un número del 1 al 7.");
36+
System.out.println(day);
37+
}
38+
39+
enum DayWeek {
40+
MONDAY(1),
41+
TUESDAY(2),
42+
WEDNESDAY(3),
43+
THURSDAY(4),
44+
FRIDAY(5),
45+
SATURDAY(6),
46+
SUNDAY(7);
47+
private Integer numberDay = 0;
48+
49+
private DayWeek(Integer numberDay) {
50+
this.numberDay = numberDay;
51+
}
52+
53+
private Integer getNumberDay() {
54+
return numberDay;
55+
}
56+
}
57+
58+
enum OrderStatus {
59+
PENDING,
60+
SHIPPED,
61+
DELIVERED,
62+
CANCELED;
63+
}
64+
65+
private static class Order {
66+
Integer orderId;
67+
OrderStatus status;
68+
69+
public Order(Integer orderId) {
70+
this.orderId = orderId;
71+
status = OrderStatus.PENDING;
72+
}
73+
74+
private void ship() {
75+
if (status == OrderStatus.PENDING) {
76+
status = OrderStatus.SHIPPED;
77+
displayStatus();
78+
} else System.out.println("El pedido ya ha sido enviado o cancelado!");
79+
}
80+
81+
private void deliver() {
82+
if (status == OrderStatus.SHIPPED) {
83+
status = OrderStatus.DELIVERED;
84+
displayStatus();
85+
} else System.out.println("El pedido necesita ser enviado antes de entregarse!");
86+
}
87+
88+
private void cancel() {
89+
if (status != OrderStatus.DELIVERED) {
90+
status = OrderStatus.CANCELED;
91+
displayStatus();
92+
} else System.out.println("El pedido ya ha sido entregado, no es posible cancelar!");
93+
}
94+
95+
private void displayStatus() {
96+
System.out.printf("El estado del pedido %d es %s%n", orderId, status);
97+
}
98+
}
99+
}

0 commit comments

Comments
 (0)