Day of the week: Difference between revisions
Content added Content deleted
Line 540: | Line 540: | ||
=={{header|Erlang}}== |
=={{header|Erlang}}== |
||
{{incorrect|Erlang|Some of the outputs are wrong, Please Check and sort it out. Most probably,there is some rounding errors.}} |
|||
<lang erlang>% Implemented by |
<lang erlang>% Implemented by bengt kleberg |
||
-module( |
-module(yuletide). |
||
-export([main/0 |
-export([main/0, sunday_years/2]). |
||
main() -> |
main() -> |
||
[io:fwrite("25 December ~p is Sunday~n", [X]) || X <- sunday_years(2008, 2121)]. |
|||
sunday_years( Start, Stop ) -> |
|||
[X || X <- lists:seq(Start, Stop), is_sunday(calendar:day_of_the_week({X, 12, 25}))]. |
|||
is_sunday( 7 ) -> true; |
|||
wday(Y,M,D) -> |
|||
is_sunday( _ ) -> false. |
|||
A = (14 - M) / 12.0, |
|||
N = M + 12.0 * A - 2.0, |
|||
W = Y - A, |
|||
case {Y,M,D} of |
|||
{Y,M,D} -> |
|||
Z=(round(D + (13 * N - 1) / 5.0 +W + W / 4.0 - W / 100.0 + W / 400.0)+1)rem 7, |
|||
if |
|||
Z=:=0 -> |
|||
Y; |
|||
true -> |
|||
ok, no |
|||
end |
|||
end. |
|||
</lang> |
</lang> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
25 December 2011 is Sunday |
|||
no |
|||
25 December 2016 is Sunday |
|||
no |
|||
25 December 2022 is Sunday |
|||
2011 |
|||
25 December 2033 is Sunday |
|||
no |
|||
25 December 2039 is Sunday |
|||
no |
|||
25 December 2044 is Sunday |
|||
no |
|||
25 December 2050 is Sunday |
|||
no |
|||
25 December 2061 is Sunday |
|||
2016 |
|||
25 December 2067 is Sunday |
|||
no |
|||
25 December 2072 is Sunday |
|||
no |
|||
25 December 2078 is Sunday |
|||
no |
|||
25 December 2089 is Sunday |
|||
no |
|||
25 December 2095 is Sunday |
|||
no |
|||
25 December 2101 is Sunday |
|||
2022 |
|||
25 December 2107 is Sunday |
|||
no |
|||
25 December 2112 is Sunday |
|||
no |
|||
25 December 2118 is Sunday |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
2033 |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
2039 |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
2050 |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
2056 |
|||
no |
|||
no |
|||
no |
|||
no |
|||
2061 |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
2067 |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
2073 |
|||
no |
|||
no |
|||
no |
|||
no |
|||
2078 |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
2084 |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
2095 |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
2101 |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
2112 |
|||
no |
|||
no |
|||
no |
|||
no |
|||
no |
|||
2118 |
|||
no |
|||
no |
|||
no |
|||
ok |
|||
</pre> |
</pre> |
||