Day of the week of Christmas and New Year: Difference between revisions

Content added Content deleted
(Add PL/M)
(Add Draco)
Line 348: Line 348:
{{out}}
{{out}}
<pre>25/12/2021 is a Saturday
<pre>25/12/2021 is a Saturday
1/1/2022 is a Saturday</pre>

=={{header|Draco}}==
<lang draco>type Date = struct {
word year;
byte month, day
};

proc nonrec day_name(Date date) *char:
word m, y, d, j, k;
m := date.month;
y := date.year;
d := date.day;
if m <= 2 then
m := m + 12;
y := y - 1
fi;
j := y / 100;
k := y % 100;
d := (d + ((m+1)*26)/10 + k + (k>>2) + (j>>2) + 5*j) % 7;
case d
incase 0: "Saturday"
incase 1: "Sunday"
incase 2: "Monday"
incase 3: "Tuesday"
incase 4: "Wednesday"
incase 5: "Thursday"
incase 6: "Friday"
esac
corp

proc nonrec print_date(Date d) void:
write(d.month, '/', d.day, '/', d.year)
corp

proc nonrec main() void:
[2] Date dates = ((2021, 12, 25), (2022, 1, 1));
byte i;
for i from 0 upto 1 do
print_date(dates[i]);
writeln(" is a ", day_name(dates[i]))
od
corp</lang>
{{out}}
<pre>12/25/2021 is a Saturday
1/1/2022 is a Saturday</pre>
1/1/2022 is a Saturday</pre>