¿Hay alguna manera fácil de determinar si un año es bisiesto?¿Manera fácil de determinar el año bisiesto en rubí?
Respuesta
Prueba esto:
is_leap_year = year % 4 == 0 && year % 100 != 0 || year % 400 == 0
Para su comprensión:
def leap_year?(year)
if year % 4 == 0
if year % 100 == 0
if yearVar % 400 == 0
return true
end
return false
end
return true
end
false
end
Esto podría ser escrito como:
def leap_year?(year)
(year % 4 == 0) && !(year % 100 == 0) || (year % 400 == 0)
end
def leap_year?(num)
if num%4 == 0 && num%100 != 0
true
elsif num%400 == 0
true
elsif num%4 == 0 && num%100 == 0 && num%400 != 0
false
elsif num%4 != 0
false
end
end
puts leap_year?(2000)
Aquí es mi respuesta para el problema exercism.io el que hace la misma pregunta. Se le dice explícitamente que ignore cualquier función de biblioteca estándar que pueda implementarlo como parte del ejercicio.
class Year
attr_reader :year
def initialize(year)
@year = year
end
def leap?
if @year.modulo(4).zero?
return true unless @year.modulo(100).zero? and not @year.modulo(400).zero?
end
false
end
end
Nota: Dije que es para http://exercism.io, que le pide que implemente la lógica usted mismo como un ejercicio de codificación. – MattC
Esto se tiene un rango:
(starting..ending).each do |year|
next if year % 4 != 0
next if year % 100 == 0 && year % 400 != 0
puts year
end
Fuente: Aprende a Programa por Chris Pine
El uso de la menor cantidad posible de comparaciones, se puede hacer esto:
- Primera/Mayor versión
def leap_year?(year)
# check first if year is divisible by 400
return true if year % 400 == 0
year % 4 == 0 && year % 100 != 0
end
- Shorter versión
Podemos hacer la misma comprobación mediante cortocircuito o (||
):
def leap_year?(year)
year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)
end
- 1. Verificar el año bisiesto
- 2. Revisar el año bisiesto en C#
- 3. javascript para encontrar el año bisiesto
- 4. recordatorio de cumpleaños de mysql, año bisiesto
- 5. Cómo encontrar año bisiesto programáticamente en C
- 6. PHP - ¿Cómo comprobar si un año es bisecado (es decir, un año bisiesto)?
- 7. Cómo determinar dentro de un año en Javascript
- 8. Manera fácil de AJAX WebControls
- 9. manera fácil de usar FindControl ("")
- 10. manera fácil de revertir cadena
- 11. ¿Manera fácil de combinar listas?
- 12. Cómo determinar día, mes y año como int en iOS
- 13. ¿Manera fácil de determinar si un gráfico dado es subgráfico de algún otro gráfico?
- 14. Rubí búsqueda fácil para el par clave-valor en un conjunto de valores hash
- 15. ¿La manera más fácil de determinar si la conexión a internet del iPhone está disponible?
- 16. Google Maps - ¿Manera fácil en ASP.Net?
- 17. NSDate - hace un año, dilema
- 18. DateTime Format Día del año
- 19. ¿Existe alguna manera fácil de cambiar las versiones de PHP durante el desarrollo?
- 20. ¿Existe alguna manera fácil de usar InternalsVisibleToAttribute?
- 21. Manera fácil de llenar ResultSet con datos
- 22. Manera rápida y fácil de eliminar el código "muerto" (comentado)
- 23. Manera fácil de seguir contando infinitamente
- 24. ¿Hay alguna manera fácil de obtener programáticamente el alfabeto?
- 25. ¿Qué es "?" rubí en Rubí
- 26. Manera segura de obtener el día actual mes y año en el lote
- 27. Hoy es el día del año enésimo
- 28. Consulta SQL donde() el año de la fecha es $ año
- 29. Comunicación entre aplicaciones C#: la manera fácil
- 30. ¿Hay alguna manera fácil de determinar si la entrada del usuario es un número entero en bash?
esto podría estar en la biblioteca, pero estaba no es seguro. – MikeJ