Ejercicios resueltos de java con manejo de fecha (I)
Ejercicios resueltos de java con manejo de fecha (I)
Prueba práctica que incluye los siguientes contenidos:
– Manejo de fecha, hora, texto, valores numéricos y booleanos
– Uso de primitivas y clases contenedoras que incluyen API matemática,
paréntesis, promoción de tipos y conversión para evaluar expresiones
aritméticas y booleanas.
– Manipular texto, incluidos bloques de texto, utilizando las
clases String y StringBuilder
– Manipular objetos de fecha, hora, duración, período, instante y zona horaria
utilizando la API de fecha y hora
Capítulo 1 – Manejo de fecha, hora, texto, valores numéricos y booleanos
1. Cuántas de estas clases Duration, LocalDateTime, and LocalTime tienen el concepto de una zona horaria?
A.Ninguno
B.Uno
C.Dos
D.Tres
-
-
- La opción correcta es la A. Motivo. En Java, ninguna de las clases
Duration
,LocalDateTime
yLocalTime
tienen el concepto de una zona horaria. Estas clases representan una duración, una fecha y hora local y una hora local respectivamente, sin tener en cuenta la zona horaria. Si necesitas trabajar con zonas horarias, puedes usar la claseZonedDateTime
, que representa una fecha y hora con información de zona horaria.
- La opción correcta es la A. Motivo. En Java, ninguna de las clases
-
2. ¿Cuántas líneas imprime esto?
System.out.print("""
"ape"
"baboon"
"gorilla"
""");
A. Tres
B. Cuatro
C. Cinco
D. El código no compila.
-
-
- La opción correcta es la B. En Java, el código que proporcionado imprimirá el siguiente texto en una sola línea:
"ape" "baboon" "gorilla"
Esto se debe a que el código utiliza una cadena de texto multilínea con triple comillas dobles (
"""
) para definir una cadena que contiene saltos de línea. Sin embargo, el métodoSystem.out.print()
no agrega un salto de línea al final de la cadena, por lo que todo el texto se imprimirá en una sola línea.
- La opción correcta es la B. En Java, el código que proporcionado imprimirá el siguiente texto en una sola línea:
-
3. ¿Cuáles de los siguientes nombres no son nombres de variables válidos? (Escoge dos.)
A._
B. _azul
C. 2azul
D. azul$
M. Azul
-
-
- En Java, los nombres de variables deben comenzar con una letra, un guión bajo (
_
) o un signo de dólar ($
). Los caracteres siguientes pueden ser letras, dígitos, guiones bajos o signos de dólar. Las opciones A (.
) y C (2azul
) no son nombres de variables válidos en Java.
- En Java, los nombres de variables deben comenzar con una letra, un guión bajo (
-
4. ¿Qué clase tiene un método getSeconds()
?
A. Solo la clase Duration
B. Solo la clase Period
C. Ambas clases
D. Ninguna clase
-
-
- la respuesta correcta es A. Solo la clase Duration. La clase
Duration
en Java tiene un métodogetSeconds()
que se utiliza para obtener el valor en segundos de una duración. Por otro lado, la clasePeriod
no tiene un métodogetSeconds()
.. En Java, la claseDuration
tiene un métodogetSeconds()
que se utiliza para obtener el valor en segundos de una duración. Además, la claseDate
también tiene un métodogetSeconds()
, pero está en desuso y no se recomienda su uso.
- la respuesta correcta es A. Solo la clase Duration. La clase
-
5. La mayor parte de los Estados Unidos observa el horario de verano el 13 de marzo de 2022,
adelantando los relojes una hora a las 2 a. m. ¿Qué genera el siguiente código?
var localDate = LocalDate.of(2022, 3, 13);
var localTime = LocalTime.of(1, 0);
var zone = ZoneId.of("América/Nueva_York");
var z = ZonedDateTime.of(localDate, localTime, zone);
var desplazamiento = z.getOffset();
var duración = Duración.ofHours(3);
var later = z.plus(duration);
System.out.println(later.getHour() + " " + offset.equals(later.getOffset()));
A. 4 false
B. 4 true
C. 5 false
D. 5 true
E. 6 false
F. 6 true
G. Ninguna de las anteriores
Si corregimos estos errores, el código quedaría así:
var localDate = LocalDate.of(2022, 3, 13);
var localTime = LocalTime.of(1, 0);
var zone = ZoneId.of("America/New_York");
var z = ZonedDateTime.of(localDate, localTime, zone);
var desplazamiento = z.getOffset();
var duración = Duration.ofHours(3);
var later = z.plus(duración);
System.out.println(later.getHour() + " " + desplazamiento.equals(later.getOffset()));
Este código creará una fecha y hora local para el 13 de marzo de 2022 a la 1:00 a.m. en la zona horaria de Nueva York. Luego, obtendrá el desplazamiento horario para esa fecha y hora y creará una duración de 3 horas. Después, agregará esa duración a la fecha y hora original para obtener una nueva fecha y hora 3 horas después. Finalmente, imprimirá la hora de la nueva fecha y hora y un valor booleano que indica si el desplazamiento horario ha cambiado.
Dado que el horario de verano comienza el 13 de marzo de 2022 a las 2:00 a.m. en Nueva York, adelantando los relojes una hora, la nueva fecha y hora será el 13 de marzo de 2022 a las 5:00 a.m. (en lugar de las 4:00 a.m.) y el desplazamiento horario habrá cambiado. Por lo tanto, el código imprimirá 5 true
.
6. ¿Cuál es el valor de tip
después de ejecutar el siguiente fragmento de código?
int meal = 5;
int tip = 2;
var total = meal + (meal>6 ? tip++ : tip-- );
A. 1
B. 2
C. 3
D. 7
E. Ninguna de las anteriores
Después de ejecutar el fragmento de código proporcionado, el valor de tip
será 1. Esto se debe a que la expresión (meal>6 ? tip++ : tip-- )
evalúa si meal
es mayor que 6. Dado que meal
es igual a 5, la expresión evalúa a false
y se ejecuta el código después de los dos puntos (:
), que decrementa el valor de tip
en 1. Por lo tanto, la respuesta correcta es A. 1.
El código de un programa en Java quedaría así:
public class Meal {
public static void main(String[] args) {
int meal = 5;
int tip = 2;
var total = meal + (meal>6 ? tip++ : tip– );
System.out.println(«Total: » + total);
System.out.println(«valor de tip: » + tip);
}
}
Más:
Este es un programa en Java que calcula el valor total de una comida y una propina. Primero, se declaran dos variables int llamadas meal y tip, y se les asignan los valores 5 y 2, respectivamente. Luego, se declara una variable llamada total y se le asigna el resultado de la expresión meal + (meal>6 ? tip++ : tip– ). Esta expresión utiliza un operador ternario para determinar si el valor de meal es mayor que 6. Si es así, se incrementa el valor de tip en 1 y se suma al valor de meal. Si no es así, se disminuye el valor de tip en 1 y se suma al valor de meal. Finalmente, el programa imprime el valor de total, que sería 7, y el valor de tip, que sería 1.
7. ¿Qué imprime el siguiente código?
int year = 1874;
int month = Month.MARCH;
int day = 24;
LocalDate date = LocalDate.of(year, month, day);
System.out.println(date.isBefore(LocalDate.now()));
A. false
B. true
C. No compila
D. Compilar pero habrá un error exception at runtime.
Este código crea una fecha local para el 24 de marzo de 1874 y luego verifica si esa fecha es anterior a la fecha actual utilizando el método isBefore()
. Dado que la fecha creada es anterior a la fecha actual, el código imprimirá true
.
¿Cuál es el resultado de lo siguiente?
12: var b = “12”;
13: b + = “3”;
14: b.reverse();
15: System.out.println(b.toString());
A. 12
B. 21
C. 123
D. 321
E. El código no se compila.
La respuesta correcta es E. El código no se compila. Esto se debe a que la clase String
en Java no tiene un método reverse()
. Si desea invertir una cadena en Java, puede convertirla en un StringBuilder
y luego usar el método reverse()
de esa clase