Czy istnieje prosty sposób określenia, czy rok jest rokiem przestępnym?Łatwy sposób określić rok przestępny w rubin?
21
A
Odpowiedz
49
5
Spróbuj tego:
is_leap_year = year % 4 == 0 && year % 100 != 0 || year % 400 == 0
7
za wyrozumiałość:
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
To może być zapisany jako:
def leap_year?(year)
(year % 4 == 0) && !(year % 100 == 0) || (year % 400 == 0)
end
2
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)
3
Oto moja odpowiedź na problem exercism.io który prosi samo pytanie. Mówi się wam wyraźnie, aby zignorować wszelkie standardowe funkcje biblioteki, które mogą je wdrożyć w ramach ćwiczenia.
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
+0
Uwaga Powiedziałem, że jest to http://exercism.io, który prosi o wdrożenie logiki jako ćwiczenia kodującego. – MattC
0
Ten jeden zajmuje gama:
(starting..ending).each do |year|
next if year % 4 != 0
next if year % 100 == 0 && year % 400 != 0
puts year
end
Źródło: nauczyć się programu Chris Pine
0
Korzystanie z najmniejszą możliwą porównań kwotę, można to zrobić:
- Pierwsza/dłuższa wersja
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
- Krótsza wersja
Możemy zrobić to samo sprawdzanie za pomocą zwarcia lub (||
):
def leap_year?(year)
year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)
end
Powiązane problemy
- 1. javascript znaleźć rok przestępny
- 2. Sprawdź rok przestępny
- 3. Przypominamy o mysql, rok przestępny
- 4. Usunąć rok przestępny z pandy danych o numerze
- 5. Erlang - przeplatają łatwy sposób
- 6. Oracle DB Ora-01839: data nie jest poprawna dla określonego miesiąca. 29-02-2016 rok przestępny
- 7. Łatwy sposób na nieprzerwane odliczanie
- 8. Łatwy sposób na wyłączenie UITextField?
- 9. Łatwy sposób na połączenie plists?
- 10. Czy istnieje łatwy sposób na zmianę wersji PHP podczas programowania?
- 11. Łatwy sposób uruchomieniem NHibernate w projekcie WCF
- 12. Łatwy sposób na znalezienie Subtree w drzewie
- 13. Łatwy sposób instalowania wtyczek Eclipse na Ubuntu
- 14. Łatwy sposób na NSCoder włączone klasy
- 15. Łatwy sposób na awarię programu VB.NET
- 16. Łatwy sposób znaleźć niezainicjowane zmienne składowe
- 17. Łatwy sposób wydrukowania bieżącego śladu stosu aplikacji?
- 18. Łatwy sposób na ucieczkę Zmienne szablonu Django
- 19. Łatwy sposób przypisania wartości wskaźnika int?
- 20. Łatwy sposób na wypełnienie ResultSet z danymi
- 21. Łatwy sposób przetestowania referencji użytkownika LDAP
- 22. Łatwy sposób na przeprowadzanie testów na klejnot?
- 23. Łatwy sposób dodania akcji kontekstowej do Eclipse
- 24. sqlalchemy łatwy sposób wstawić lub zaktualizować?
- 25. matrycy elementów dodatków w rubin
- 26. Łatwy sposób na zmianę motywu jQuery UI?
- 27. Łatwy sposób inicjalizacji tablicy typów referencyjnych?
- 28. Łatwy sposób na zmniejszenie wydajności biegu tkaniny?
- 29. Łatwy sposób, aby wyświetlić pliki zrzutu PostgreSQL?
- 30. jak przesłonić [] nawiasy w rubin?
, że może to być w bibliotece, ale było niepewny. – MikeJ