Find the last Sunday of each month: Difference between revisions

Add Easylang
No edit summary
(Add Easylang)
 
(3 intermediate revisions by one other user not shown)
Line 1,539:
readln;
end.</syntaxhighlight>
 
=={{header|EasyLang}}==
<syntaxhighlight>
func leap year .
return if year mod 4 = 0 and (year mod 100 <> 0 or year mod 400 = 0)
.
func weekday year month day .
normdoom[] = [ 3 7 7 4 2 6 4 1 5 3 7 5 ]
c = year div 100
r = year mod 100
s = r div 12
t = r mod 12
c_anchor = (5 * (c mod 4) + 2) mod 7
doom = (s + t + (t div 4) + c_anchor) mod 7
anchor = normdoom[month]
if leap year = 1 and month <= 2
anchor = (anchor + 1) mod1 7
.
return (doom + day - anchor + 7) mod 7 + 1
.
mdays[] = [ 31 28 31 30 31 30 31 31 30 31 30 31 ]
proc last_sundays year . .
for m to 12
d = mdays[m]
if m = 2 and leap year = 1
d = 29
.
d -= weekday year m d - 1
m$ = m
if m < 10
m$ = "0" & m
.
print year & "-" & m$ & "-" & d
.
.
last_sundays 2023
</syntaxhighlight>
 
=={{header|Elixir}}==
Line 2,327 ⟶ 2,364:
 
 
=={{header|FutureBasic}}===
<syntaxhighlight lang="futurebasic">
Long y, c, d, i
Line 2,336 ⟶ 2,373:
d = d + 35 - nd // Advance 5 weeks minus month length
end fn
 
 
void local fn month( m as Short )
Line 2,356 ⟶ 2,392:
end fn
 
// Concentrate from D. Knuth: CACM 1962;5:209
y = 2024
// Concentrate from D. Knuth: CACM 1962;5:209
c = y / 100 + 1
d = ( 3 * c / 4 ) - ( 5 * y / 4 )
Line 2,382 ⟶ 2,418:
2024-12-29
</pre>
 
 
=={{header|Gambas}}==
1,983

edits