Long year: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (→{{header|Perl 6}}: cut down excessive output) |
(→{{header|Ruby}}: Added Ruby) |
||
Line 53: | Line 53: | ||
2029 is long? False |
2029 is long? False |
||
2030 is long? False</pre> |
2030 is long? False</pre> |
||
=={{header|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> |
|||
{{out}} |
|||
<pre>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> |
Revision as of 22:53, 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
say "$_ is long? {.&is-long}" for 1990..2030</lang>
- Output:
1990 is long? False 1991 is long? False 1992 is long? True 1993 is long? False 1994 is long? False 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
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.