Long year: Difference between revisions

From Rosetta Code
Content added Content deleted
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

Works with: Rakudo version 2019.11

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 }

  1. 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.