Day of the week: Difference between revisions

Line 540:
 
=={{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 Arjunbengt Sunelkleberg
-module(day_of_the_weekyuletide).
-export([main/0 , wdaysunday_years/32]).
 
main() ->
lists [io:foreachfwrite(fun(X)"25 ->December io:format("~p is Sunday~n", [wday(X,12,25)]) end,|| lists:seqX <- 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>
{{out}}
<pre>no
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>
 
Anonymous user