アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike
Rubyらしさを盛り込むと・・・ (スコア:1)
require 'date'
def html_calender(year, month)
date = Date.new(year, month, 1)
week = (date+1).cweek
array = Array.new(6).map {|a| a = Array.new(7) }
while date.month == month
array[(date+1).cweek-week][date.wday] = date.day
date = date.next
end
array.delete_if {|a| a.compact.empty? }
array.unshift(%w(日 月 火 水 木 金 土))
table = "<table border>"
array.each {|w|
Re:Rubyらしさを盛り込むと・・・ (スコア:1)
C:\>diff -u cal_tsyk.rb.prev cal_tsyk.rb
--- cal_tsyk.rb.prev 2003-06-02 02:05:04.000000000 +0900
+++ cal_tsyk.rb 2003-06-02 01:58:14.000000000 +0900
@@ -5,14 +5,18 @@
week = (date+1).cweek
array = Array.new(6).map {|a| a = Array.new(7) }
while date.month == month
- array[(date+1).cweek-week][date.wday] = date.day
+ cw = (date+1).cweek - week
+ cw += 52 if cw < 0
+ array[cw][date.wday] = date.day
date = date.next
end
array.delete_if {|a| a.compact.empty? }
array.unshift(%w(日 月 火 水 木 金 土))
table = "<table border>"
array.each {|w|
- table << "<tr><td>" + w.join("</td><td>") + "</td>\n"
+ table << "<tr><td>" + w.join("</td><td>") + "</td></tr>\n"
}
table << "</table>"
end
<http://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=Date>
リファレンスマニュアルには "cweek 暦週を返します (1-53)" って書いてあるのに…
C:\>irb
irb(main):001:0> require 'date'
=> true
irb(main):002:0> Date.new(2003, 12, 28).cweek
=> 52
irb(main):003:0> Date.new(2003, 12, 29).cweek
=> 1
irb(main):004:0>
Re:Rubyらしさを盛り込むと・・・ (スコア:1)
翌年の1月1日が金曜日の場合だけ、その年には「53週目」が存在するらしい。
こんな定義は始めて知りました。
C:\>irb
irb(main):001:0> require 'date'
=> true
irb(main):002:0> Date.new(1981, 12, 31).cweek
=> 53
irb(main):003:0> Date.new(1987, 12, 31).cweek
=> 53
irb(main):004:0> Date.new(1992, 12, 31).cweek
=> 53
irb(main):005:0> Date.new(1998, 12, 31).cweek
=> 53
irb(main):006:0> Date.new(2009, 12, 31).cweek
=> 53
irb(main):007:0> [nagaokaut.ac.jp]
Re:Rubyらしさを盛り込むと・・・ (スコア:1)
// Give me chocolates!