Curso de Raku / Apéndice 🆕 / Flujo y funciones / Control de flujo y lógica / Exercises / Años bisiestos
Solución: Años bisiestos
Aquí tienes una posible solución para la tarea.
Código
for 2000, 1900, 2024, 2023 -> $year {
my $leap = $year %% 400 || ($year %% 4 && !($year %% 100));
say "$year: { $leap ?? 'leap' !! 'common' }";
}🦋 Puedes encontrar el código fuente en el archivo leap-year.raku.
Salida
2000: leap
1900: common
2024: leap
2023: commonComentarios
La regla se lee directamente como una expresión booleana: un año bisiesto es uno divisible por 400, o uno divisible por 4 pero no por 100.
%%es la prueba de divisibilidad.1900es divisible por 100 pero no por 400, así que es común;2000es divisible por 400, así que es bisiesto.El tipo
Datede Raku ya conoce esta regla. La expone como.is-leap-year, un método sobre un objeto fecha, así que construyes cualquier fecha del año (aquí el 1 de enero) y se lo preguntas:for 2000, 1900, 2024, 2023 -> $year { my $leap = Date.new($year, 1, 1).is-leap-year; say "$year: { $leap ?? 'leap' !! 'common' }"; }
El ejercicio, claro está, va de escribir tú mismo la regla.