Day of the week of Christmas and New Year: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add PL/M) |
Not a robot (talk | contribs) (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> |
||