Day of the week of Christmas and New Year: Difference between revisions
Thundergnat (talk | contribs) (→{{header|Raku}}: Add a Raku example) |
(→{{header|Wren}}: Revised in line with Raku example.) |
||
Line 46: | Line 46: | ||
=={{header|Wren}}== |
=={{header|Wren}}== |
||
{{libheader|Wren-date}} |
{{libheader|Wren-date}} |
||
This uses the same years as the Raku example. |
|||
The actual days for 1578 may have been different as the Gregorian calendar didn't start until 1582. |
|||
<lang ecmascript>import "./date" for Date |
<lang ecmascript>import "./date" for Date |
||
var years = [1578, 1590, 1642, 1957, 2020, 2021, 2022, 2242, 2245, 2393] |
|||
var xmas = Date.new(2021, 12, 25) // xmas and new year's weekdays are always the same |
|||
for (year in years) { |
|||
var weekday = xmas.weekDay |
|||
var newYear = Date.new(year, 1, 1).weekDay |
|||
System.print("Christmas day, 2021 will fall on %(weekday).") |
|||
var xmas = Date.new(year, 12, 25).weekDay |
|||
System.print("New year's day, 2022 will also fall on %(weekday).")</lang> |
|||
System.print("In %(year), New year's day is on a %(newYear), and Christmas day on %(xmas).") |
|||
}</lang> |
|||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
In 1578, New year's day is on a Sunday, and Christmas day on Monday. |
|||
Christmas day, 2021 will fall on Saturday. |
|||
New year's day |
In 1590, New year's day is on a Monday, and Christmas day on Tuesday. |
||
In 1642, New year's day is on a Wednesday, and Christmas day on Thursday. |
|||
In 1957, New year's day is on a Tuesday, and Christmas day on Wednesday. |
|||
In 2020, New year's day is on a Wednesday, and Christmas day on Friday. |
|||
In 2021, New year's day is on a Friday, and Christmas day on Saturday. |
|||
In 2022, New year's day is on a Saturday, and Christmas day on Sunday. |
|||
In 2242, New year's day is on a Saturday, and Christmas day on Sunday. |
|||
In 2245, New year's day is on a Wednesday, and Christmas day on Thursday. |
|||
In 2393, New year's day is on a Friday, and Christmas day on Saturday. |
|||
</pre> |
</pre> |
Revision as of 15:45, 24 November 2021
- Task
Determine programatically and show on this page on what weekday Christmas Day, 2021 and New Year's Day, 2022 will fall or did fall.
Python
<lang python> iimport datetime
weekDays = ("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday") thisXMas = datetime.date(2021,12,25) thisXMasDay = thisXMas.weekday() thisXMasDayAsString = weekDays[thisXMasDay] print("This year's Christmas is on a {}".format(thisXMasDayAsString))
nextNewYear = datetime.date(2022,1,1) nextNewYearDay = nextNewYear.weekday() nextNewYearDayAsString = weekDays[nextNewYearDay+1] print("Next new year is on a {}".format(nextNewYearDayAsString)) </lang>
- Output:
This year's Christmas is on a Saturday Next new year is on a Sunday
Raku
<lang perl6>my @d-o-w = < Sunday Monday Tuesday Wednesday Thursday Friday Saturday >;
.say for (flat 2020..2022, (1500 .. 2500).roll(7)).sort.map: {
"In {$_}, New Years is on a { @d-o-w[Date.new($_, 1, 1).day-of-week % 7] }, " ~ "and Christmas on a { @d-o-w[Date.new($_, 12, 25).day-of-week % 7] }."
}</lang>
- Sample output:
In 1578, New Years is on a Sunday, and Christmas on a Monday. In 1590, New Years is on a Monday, and Christmas on a Tuesday. In 1642, New Years is on a Wednesday, and Christmas on a Thursday. In 1957, New Years is on a Tuesday, and Christmas on a Wednesday. In 2020, New Years is on a Wednesday, and Christmas on a Friday. In 2021, New Years is on a Friday, and Christmas on a Saturday. In 2022, New Years is on a Saturday, and Christmas on a Sunday. In 2242, New Years is on a Saturday, and Christmas on a Sunday. In 2245, New Years is on a Wednesday, and Christmas on a Thursday. In 2393, New Years is on a Friday, and Christmas on a Saturday.
Wren
This uses the same years as the Raku example.
The actual days for 1578 may have been different as the Gregorian calendar didn't start until 1582. <lang ecmascript>import "./date" for Date
var years = [1578, 1590, 1642, 1957, 2020, 2021, 2022, 2242, 2245, 2393] for (year in years) {
var newYear = Date.new(year, 1, 1).weekDay var xmas = Date.new(year, 12, 25).weekDay System.print("In %(year), New year's day is on a %(newYear), and Christmas day on %(xmas).")
}</lang>
- Output:
In 1578, New year's day is on a Sunday, and Christmas day on Monday. In 1590, New year's day is on a Monday, and Christmas day on Tuesday. In 1642, New year's day is on a Wednesday, and Christmas day on Thursday. In 1957, New year's day is on a Tuesday, and Christmas day on Wednesday. In 2020, New year's day is on a Wednesday, and Christmas day on Friday. In 2021, New year's day is on a Friday, and Christmas day on Saturday. In 2022, New year's day is on a Saturday, and Christmas day on Sunday. In 2242, New year's day is on a Saturday, and Christmas day on Sunday. In 2245, New year's day is on a Wednesday, and Christmas day on Thursday. In 2393, New year's day is on a Friday, and Christmas day on Saturday.