年間カレンダー
Posted feedbacks - Lua
Lua始めました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | -- 閏年かどうか判定
L =
function (y)
if y % 400 == 0 then return 1 end
if y % 100 == 0 then return 0 end
if y % 4 == 0 then return 1 end
return 0
end
-- 指定された日の曜日を取得
W =
function (y, m, d)
return tonumber(os.date('%w', os.time({ year = y, month = m, day = d })))
end
(function (v)
local d = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
local w = { 'Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa' }
local m, t, y
if #v ~= 2 then
io.stderr:write('usage: ' .. v[0] .. ' [month] [year]\n')
return 1
end
m, y = tonumber(v[1]), tonumber(v[2])
if m == nil or y == nil then
io.stderr:write('usage: ' .. v[0] .. ' [month] [year]\n')
return 1
end
if m < 1 or m > 12 then
io.stderr:write('cal: illegal month value: use 1-12\n')
return 1
end
if y < 1 or y > 9999 then
io.stderr:write('cal: illegal year value: use 1-9999\n')
return 1
end
-- 閏日を補正
d[2] = d[2] + L(y)
t = string.format('%4d/%2d', y, m) .. '\n'
.. table.concat(w, ' ') .. '\n'
.. string.rep(' ', W(y, m, 1))
for i = 1, d[m] do
t = t .. string.format('%2d', i)
t = W(y, m, i) < 6 and t .. ' ' or t .. '\n'
end
print(t)
return 0
end)(arg)
|



186
#4884()
Rating4/4=1.00
nを入力としてn年の年間カレンダーを返すプログラムを作ってください 少なくとも日曜日と土曜日が判別出来るようにしてください 出力は標準出力でもファイルでも構いません デザインは各自のお好みで 出力例1: (y-calendar 2008)=> #=Saturday, @=Sunday 2008/1 1 2 3 4 #5 @6 7 ... 2008/2 1 #2 @3 4 5 6 7 ... ... 2008/12 1 2 3 4 5 #6 @7 ... 出力例2: (y-calendar 2008)=> M T W T F S S M 2008/ 1 1 2 3 4 5 6 7 ... 2008/ 2 1 2 3 4 ... ... 2008/12 1 2 3 4 5 6 7 8 ... 出力例3: (y-calendar 2008)は2008.htmlを出力する 2008.htmlの中身 ---- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>2008 calendar</title> <style type="text/css"> * {font-family: monospace;} span {margin: 0px 3px;} span.sunday {color:red;font-weight:bold;} span.saturday {color:blue;font-weight:bold;} dd ul li{display:inline;} </style> </head> <body> <h1>2008 calendar</h1> <dl> <dt>2008/1</dt> <dd><ul> <li><span class="weekday">1</span></li> <li><span class="weekday">2</span></li> <li><span class="weekday">3</span></li> <li><span class="weekday">4</span></li> <li><span class="saturday">5</span></li> <li><span class="sunday">6</span></li> ... </ul></dd> ... </dl> </body> </html> ----[ reply ]