RosettaCodeData/Task/Five-weekends/Pluto/five-weekends.pluto
2026-04-30 12:34:36 -04:00

38 lines
1.2 KiB
Text

local fmt = require "fmt"
local dates = {}
local years = {}
for y = 1900, 2100 do
local has_five = false
for m = 1, 12 do
local fri = 0
local sat = 0
local sun = 0
for d = 1, fmt.month(m, y) do
local t = os.time({year = y, month = m, day = d})
local dow = tonumber(os.date("%u", t))
if dow == 5 then
fri += 1
elseif dow == 6 then
sat += 1
elseif dow == 7 then
sun += 1
end
end
local fd = os.date("%b - %Y", os.time({year = y, month = m, day = 1}))
if fri == 5 and sat == 5 and sun == 5 then
dates:insert(fd)
has_five = true
end
end
if !has_five then years:insert(y) end
end
print("Between 1900 and 2100:-")
print($" There are {#dates} months that have five full weekends.")
print(" The first 5 are:")
for i = 1, 5 do print($" {dates[i]}") end
print(" and the last 5 are:")
for i = -4, 0 do print($" {dates[#dates + i]}") end
print($"\n There are {#years} years that do not have at least one five-weekend month, namely:")
fmt.tprint(" %d", years, 10)