Long year: Difference between revisions
Content added Content deleted
(→{{header|Ruby}}: Added Ruby) |
Thundergnat (talk | contribs) m (→{{header|Perl 6}}: Better (less verbose) demo) |
||
Line 10: | Line 10: | ||
# Testing |
# Testing |
||
# Testing |
|||
say "$_ is long? {.&is-long}" for 1990..2030</lang> |
|||
say "Long years in the 20th century:\n", (1900..2000).grep: *.&is-long; |
|||
say "\nLong years in the 21st century:\n", (2000..2100).grep: *.&is-long;</lang> |
|||
{{out}} |
{{out}} |
||
<pre> |
<pre>Long years in the 20th century: |
||
(1903 1908 1914 1920 1925 1931 1936 1942 1948 1953 1959 1964 1970 1976 1981 1987 1992 1998) |
|||
1991 is long? False |
|||
1992 is long? True |
|||
Long years in the 21st century: |
|||
1993 is long? False |
|||
(2004 2009 2015 2020 2026 2032 2037 2043 2048 2054 2060 2065 2071 2076 2082 2088 2093 2099) |
|||
1994 is long? False |
|||
</pre> |
|||
1995 is long? False |
|||
1996 is long? False |
|||
1997 is long? False |
|||
1998 is long? True |
|||
1999 is long? False |
|||
2000 is long? False |
|||
2001 is long? False |
|||
2002 is long? False |
|||
2003 is long? False |
|||
2004 is long? True |
|||
2005 is long? False |
|||
2006 is long? False |
|||
2007 is long? False |
|||
2008 is long? False |
|||
2009 is long? True |
|||
2010 is long? False |
|||
2011 is long? False |
|||
2012 is long? False |
|||
2013 is long? False |
|||
2014 is long? False |
|||
2015 is long? True |
|||
2016 is long? False |
|||
2017 is long? False |
|||
2018 is long? False |
|||
2019 is long? False |
|||
2020 is long? True |
|||
2021 is long? False |
|||
2022 is long? False |
|||
2023 is long? False |
|||
2024 is long? False |
|||
2025 is long? False |
|||
2026 is long? True |
|||
2027 is long? False |
|||
2028 is long? False |
|||
2029 is long? False |
|||
2030 is long? False</pre> |
|||
=={{header|Ruby}}== |
=={{header|Ruby}}== |
||
<lang ruby> |
<lang ruby> |
Revision as of 22:57, 9 January 2020
Long year is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.
Most years have 52 weeks, some have 53, according to ISO8601. Write a function which determines if a given year is long (53 weeks) or not, and demonstrate it.
Perl 6
December 28 is always in the last week of the year. (By ISO8601) <lang perl6>sub is-long ($year) { Date.new("$year-12-28").week[1] == 53 }
- Testing
- Testing
say "Long years in the 20th century:\n", (1900..2000).grep: *.&is-long; say "\nLong years in the 21st century:\n", (2000..2100).grep: *.&is-long;</lang>
- Output:
Long years in the 20th century: (1903 1908 1914 1920 1925 1931 1936 1942 1948 1953 1959 1964 1970 1976 1981 1987 1992 1998) Long years in the 21st century: (2004 2009 2015 2020 2026 2032 2037 2043 2048 2054 2060 2065 2071 2076 2082 2088 2093 2099)
Ruby
<lang ruby> require 'date'
def long_year?(year = Date.today.year)
Date.new(year, 12, 28).cweek == 53
end
(2020..2030).each{|year| puts "#{year} is long? #{ long_year?(year) }." } </lang>
- Output:
2020 is long? true. 2021 is long? false. 2022 is long? false. 2023 is long? false. 2024 is long? false. 2025 is long? false. 2026 is long? true. 2027 is long? false. 2028 is long? false. 2029 is long? false. 2030 is long? false.